草庐IT

vector_tostr

全部标签

c++ - 以相反的顺序将一个 vector 复制到另一个 vector

我是C++新手。我需要以相反的顺序将一个vector复制到另一个vector。这是我的做法:inttemp[]={3,12,17};vectorv(temp,temp+3);vectorn_v;n_v=v;reverse(n_v.begin(),n_v.end());//Reversingnewvector在STL中有没有简单的方法可以将一个vector以相反的顺序复制到另一个vector? 最佳答案 只需这样做:vectorn_v(v.rbegin(),v.rend()); 关于c++

Vector 容器中的 C++ 智能指针

我写了经典的ShapePolymorphism代码,但有点不同,因为我使用了Vector容器和智能指针。我不是C++专家,我想了解以下内容:是否存在内存泄漏?如果我不调用shapes.clear(),是否会发生内存泄漏?有没有更好的方法来使用智能指针和容器?代码:#include#include#includeusingnamespacestd;classShape{public:virtualfloatgetArea()=0;virtual~Shape(){}};classRectangle:publicShape{public:Rectangle(floatw,floath):wi

c++ - 如何用满足某些条件的另一个 vector 中的数据填充 std::vector

我有一个点vector,我需要获取与给定点的距离小于某个值的点。我可以用一个简单的循环来完成,但是有更好的方法吗?提前致谢 最佳答案 使用std::remove_copy_if:#include#include#include#include#includeintmain(){std::vectorv;v.push_back(3);v.push_back(2);v.push_back(6);v.push_back(10);v.push_back(5);v.push_back(2);std::vectorv2;std::remove_

c++ - 如何释放 vector 中的对象指针?

我有;classobject{//anyprivatedatastokeninheapareapublic:~object();};在函数中;vectortmp;我的问题是;如何删除/取消分配tmp[i]?换句话说,我应该在object::destructor中写些什么? 最佳答案 你好像有点糊涂了。这里有两个概念:作为tmp的所有者,我如何解除分配tmp中指针引用的对象?object类(~object)的析构函数应该做什么?这些实际上并没有那么相关。当您完成tmpvector时,您必须手动遍历并对其每个元素调用delete以释放o

c++ - 无法将 NULL 发送到获取 vector 的函数

我有这个功能:voidRegMatrix::MatrixInit(intnumRow,intnumCol,std::vectorfill){dosomething;}我想发送这个:MatrixInit(numRow,numCol,NULL);我如何将NULL作为vector传递? 最佳答案 您不能将NULL作为vector传递,您可以像这样传递一个空vector:MatrixInit(numRow,numCol,std::vector())请注意,最好将fillvector作为const&。

c++ - 围绕另一个 vector 旋转一个 vector

我正在为OpenGL编写3dvector类。如何将一个vectorv1围绕另一个vectorv2旋转角度A? 最佳答案 您可能会发现quaternions成为更优雅、更高效的解决方案。在最近看到这个答案出现问题后,我想我会提供一个更可靠的答案。无需理解四元数的全部数学含义即可使用的一种。我将假设(给定C++标记)您有一个类似于Vector3类的东西,具有“明显”的功能,如inner、cross,和*=标量运算符等...#include#include...voidmake_quat(floatquat[4],constVector3

C++ 使用 std::vector 迭代类指针

我正在尝试使用指针迭代vector我有一个vector叫做:std::vectorobjects;还有很多像这样的函数:voidGame::update(){std::vector::iteratoritr;for(itr=objects.begin();itrupdate();//IneedtocallaabstractfunctionintheGameObjectClass}}Game::~Game(){deleteball;deleteplayer;}Game::Game(){ball=newGOBall(800/2-GOBall::SIZE/2,600/2-GOBall::SI

c++ - vector 排序算法,只对大于 0 的元素进行排序

我必须对结构vector进行排序。假设该结构有两个成员:Structgame{stringname;intrating;};所以我创建了一个std::vector游戏,并按评分对它们进行简单排序。std::sort(games.begin(),games.end(),[](game&info1,game&info2){returninfo1.rating>info2.rating;});目前一切正常。问题是如果所有游戏的评级值为0,它们就会混合。简而言之,我必须只对评分大于零的元素进行排序。让我们举个例子:所有游戏都按字母顺序和等级0的名称推送到vector中,当触发排序时,字母顺序会

c++ - slist 优于 vector 的好处?

我需要的只是一个动态增长的数组。我不需要随机访问,我总是插到最后,从头读到尾。slist似乎是首选,因为它提供了我所需要的。但是,我不知道使用slist而不是vector有什么好处。此外,我读到的一些关于STL的Material说,“vector通常是访问元素和从序列末尾添加或删除元素的最有效时间”。因此,我的问题是:对于我的需要,slist真的是比vector更好的选择吗?提前致谢。 最佳答案 对于初学者来说,slist是非标准的。根据您的选择,链表会比vector慢,相信它。造成这种情况的原因有两个:首先是缓存位置;vector

c++ - 将数据放入 C++ 中的 std::vector 是否会创建数据的拷贝?

我对创建一个新的std::vector(或调用它的assign方法)创建数据的拷贝感兴趣吗?例如,voidfun(char*input){std::vectorv(input,input+strlen(input));//isitsafetoassumethatthedatainputpointstowasCOPIEDintov?} 最佳答案 是的。元素总是被复制到STL容器中或从中复制出来。(至少在C++0x中添加移动语义之前)编辑:以下是测试复制自己的方法:#include#includeclassCopyChecker{pub