草庐IT

vector_tostr

全部标签

c++ - 为什么在 vector 中间添加或删除元素这么慢?

根据AcceleratedC++:Tousethisstrategy,weneedawaytoremoveanelementfromavector.Thegoodnewsisthatsuchafacilityexists;thebadnewsisthatremovingelementsfromvectorsisslowenoughtoargueagainstusingthisapproachforlargeamountsofinputdata.Ifthedataweprocessgetreallybig,performancedegradestoanastonishingextent.

c++ - 为什么 C++ STL vector 在做很多保留时会慢 1000 倍?

我遇到了一个奇怪的情况。在我的程序中,我有一个循环将大量数据组合在一个巨大的vector中。我试图弄清楚为什么它运行得如此缓慢,尽管看起来我正在尽一切努力以高效的方式分配内存。在我的程序中,很难确定组合数据的最终vector应该有多大,但每条数据的大小在处理时是已知的。因此,我没有一次性保留和调整组合数据vector,而是为每个数据block保留足够的空间,因为它被添加到更大的vector中。就在那时,我遇到了这个可以使用下面的简单代码片段重复的问题:std::vectorarr1;std::vectorarr2;std::vectorarr3;std::vectorarr4;intn

c++ - VisualStudio2008 上的 std::vector 似乎没有得到最佳实现 - 太多的复制构造函数调用

我一直在将流行的XmlRpc库的STL实现与主要避免使用STL的实现进行比较。STL实现要慢得多——我从47秒降到了4.5秒。我已经诊断出一些原因:部分原因是std::string被误用(例如,作者应该尽可能使用“conststd::string&”——不要像使用std::string那样是Java字符串),但这也是因为每次vector超出其边界时都会不断调用复制构造函数,这种情况非常频繁。复制构造函数非常慢,因为它们对树(XmlRpc值)进行深度复制。StackOverflow上的其他人告诉我,std::vector实现通常在每次超出时将缓冲区的大小加倍。这在VisualStudio

c++ - 在结构的 c++ std vector 中搜索具有匹配字符串的结构

我确信我正在使这比它需要的更难。我有一个vector...vectormJointsVector;...由以下结构组成:structJoints{stringname;floatorigUpperLimit;floatorigLowerLimit;};我正在尝试使用“std::find”搜索mJointsVector以通过其字符串名称定位单个关节-到目前为止运气不佳,但以下示例至少在概念上有所帮助:Vectors,structsandstd::find谁能进一步指出我正确的方向? 最佳答案 直接的方法:structFindByNam

c++ - vector<auto_ptr<>> 的编译问题

考虑以下代码:#include#include#includeusingnamespacestd;structA{inta;A(inta_):a(a_){}};intmain(){vector>as;for(inti=0;ia(newA(i));as.push_back(a);}for(vector>::iteratorit=as.begin();it!=as.end();++it)couta当尝试编译它时,我从g++得到以下模糊的编译器错误:g++-O0-g3-Wall-c-fmessage-length=0-MMD-MP-MF"src/proba.d"-MT"src/proba.d

c++ - 将 vector <std::string> 转换为 vector <double>

我有一个像{"1.2","3.4","0.5","200.7"}这样的字符串vector.我想将每个元素转换为double并将其存储在vector中.像这样{1.2,3.4,0.5,200.7}执行此操作的最佳方法是什么?我知道std::stod(string,size);但我希望有更好的方法来做到这一点。我在寻找类似的东西:vectordoubleVector=convertStringVectortoDoubleVector(myStringVector);似乎没有这样的东西;那么下一个最好的事情是什么?编辑:这是我最终使用的:std::vectorconvertStringVec

c++ - 如何将 vector 大小与整数进行比较?

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭6年前。Improvethisquestion如果vector的大小(声明为vectorvectorX)与预期不同,我将使用以下代码抛出错误。vectorvectorX;intintendedSize=10;//Somestuffhereif((int)(vectorX.size())!=(intendedSize)){coutcout声明显示

c++ - 旋转 vector (数组)

我正在尝试在C++中旋转元素vector。我的意思是我有一个vector我希望最后一个元素成为第一个元素。例子:[1,2,3]become[3,1,2]then[2,3,1]为此,我尝试执行以下操作://Addthelastelementatindex0ObjectToRotate.insert(0,ObjectToRotate.at(ObjectToRotate.size()-1));//RemoveLastelementObjectToRotate.erase(ObjectToRotate.size()-1);但是我得到这个错误:Error6errorC2664:'std::_Ve

c++ - 从整数 vector 中获取平均值

我一直无法找到一种方法从C++中的整数vector中获取平均值。我不可能开始添加所有值,因为我可能会超过可接受的最大整数值。我怎样才能高效快速地计算这个?C++语言中是否有任何标准库可以做到这一点? 最佳答案 首选方法只是用足够宽的整数类型与std::accumulate求和:doubleavg1(std::vectorconst&v){return1.0*std::accumulate(v.begin(),v.end(),0LL)/v.size();}如果这个总和溢出(有2300万个整数,平均值必须至少为4.01x1011-也就是

c++ - 将 vector<vector<char>> 转换为 vector<string>

我有一个std::vector>并想填写std::vector及其内容。我只是无法思考如何访问的内部vector并将字符放入字符串vector中。也许我错了,但我认为std::vector就像一个字符串。所以这应该不难做到,我只是被困在脑海中的某个地方。我看过这个:vectororvector>?但这并没有让我走得太远。感谢您的帮助。 最佳答案 这是一个算法版本std::vector>a;std::vectorb;std::transform(a.begin(),a.end(),std::back_inserter(b),[](st