草庐IT

vector_c

全部标签

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

c++ - vector<bool>::operator[] 行为不当?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Whyvector::referencedoesn’treturnreferencetobool?我曾经认为std::vector::operator[]我们得到了被访问项目的深度拷贝,但似乎并不总是如此。至少,用vector下面的测试代码给出了不同的结果:#include#includeusingnamespacestd;templatevoidTest(constT&oldValue,constT&newValue,constchar*message){coutv;v.push_back(oldValue)

c++ - remove_if and then erase 在 vector 上是否有效?

虽然关于vector的remove_if+erase有几十个问题。我找不到这种Action的表现。当我写:myVector.erase(remove_if(myVector.begin(),myVector.end(),some_predicate),myVector.end());removeif将返回指向最后一个相关项+1(我们称它为X)的迭代器。我相信这会在O(n)内发生。但是删除将如何工作?如果删除将尝试从X删除到myVector.end()它将是O(n^2)因为它会导致将vector复制到新位置,并且将有O(n)次新分配从堆。但是如果它将从myVector.end()删除到X

c++ - C/C++ 位数组或位 vector

我正在学习C/C++编程并且遇到过“位数组”或“位vector”的用法。无法理解他们的目的?这是我的疑问-它们是否用作bool标志?能否改用int数组?(当然有更多的内存,但是..)Bit-Masking的概念是什么?如果位掩码是简单的位操作以获得适当的标志,如何为它们编写一个程序?是否不难在头脑中执行此操作以查看与十进制数相对应的标志是什么?我正在寻找应用程序,以便我更好地理解。对于例如-Q.给定一个文件,其中包含范围(1到1百万)内的整数。有一些重复项,因此缺少一些数字。找到寻找失踪的最快方法数字?对于上述问题,我已经阅读了告诉我使用位数组的解决方案。如何在位中存储每个整数?

c++ - 如何检查一个值是否包含在 vector 中? C++

这个问题在这里已经有了答案:Howtofindoutifanitemispresentinastd::vector?(18个答案)关闭9个月前。我有一个vector,我正在尝试对其执行包含函数。我收到某种转换错误,无法拼凑出解决方案。我还想知道我正在做的事情是否是检查vector是否包含值的适当方法。代码如下:#include"stdafx.h"#includestaticvoidsomeFunc(double**Y,intlength);staticboolcontains(doublevalue,std::vectorvec);intmain(){doubledoubleArray