草庐IT

vector_tostr

全部标签

c++ - vector <字符串> 或 vector <字符 *>?

问题:有什么区别:vector和vector?我将如何传递数据类型的值:string一个函数,专门接受:constchar*?例如:vectorargs(argv,argv+argc);vector::iteratori;voidfoo(constchar*);//*i我明白使用vector:我必须复制数据以及指针编辑:感谢输入! 最佳答案 这实际上与vector无关。char*是一个指针,它可能指向也可能不指向有效的字符串数据。Astd::string是一个字符串类,封装了构成字符串的所有必需数据,以及分配和释放功能。如果您将st

c++ - 将 std::ifstream 读入线 vector

我该如何读取每行都是一个数字的文件,然后将该数字输出到一个多行vector中?例如:file.txt包含:314159265123456我试过这个实现:vectorifstream_lines(ifstream&fs){vectorout;inttemp;getline(fs,temp);while(!fs.eof()){out.push_back(temp);getline(fs,temp);}fs.seekg(0,ios::beg);fs.clear();returnout;}但是当我尝试编译时,出现如下错误:errorC2784:'std::basic_istream&std::

c++ - 在 C++11 中创建指针 vector 的惯用方法?

假设我想在C++11中创建一个包含10个指针的std::vector,每个指针都指向Foo类的默认构造实例。这是一种方法:std::vectorfoos;for(inti=0;i!=10;++i){foos.push_back(newFoo());}是否有一种惯用的方法来避免for循环? 最佳答案 如果你想避免显式的for循环,那么是的,有一种方法。使用std::generate或generate_n:std::generate_n(std::back_inserter(foos),10,[]{returnnewFoo();});这

c++ - 如何在运行时确定 vector 大小?

在运行时,可以确定vector的大小吗?例如input:25//显示vector大小code:intN;cindata[N]; 最佳答案 您可能感兴趣的两种方法:std::vector::size将返回vector中元素的数量。std::vector::capacity将返回vector已为其分配内存的元素数。示例片段std::vectorv;for(inti=0;i输出Elements:25Capacity:100我猜你在原始帖子中的示例片段至少包含一个拼写错误,你没有声明std::vector与N通过编写下面的元素。你写的是da

c++ - std::vector::front() 和 begin() 之间的区别

关于vector的帮助说front()Returnsareferencetothefirstelementinthevectorcontainer.Unlikemembervector::begin,whichreturnsaniteratortothissameelement,this>functionreturnsadirectreference.关于vector的帮助说begin()Returnsaniteratorreferringtothefirstelementinthevectorcontainer.Noticethatunlikemembervector::front,

c++ - 如何在 C++ 中的 vector 中插入多个值?

我想知道有什么方法可以在不使用临时变量的情况下将多个值作为单个值插入vector中?我的意思是例如:structSomething{intx;inty;};intmain(){vectorv;intx,y;cin>>x>>y;v.push_back(x,y);}有什么方法可以避免这样做(定义另一个变量,然后插入它,而不是直接插入x,y):Somethingtemp;temp.x=x;temp.y=y;v.push_back(temp); 最佳答案 给你的类一个构造函数,像这样:Something(intx_,inty_):x(x_)

c++ - 从 vector 中删除最小的非唯一值

我有一个未排序的doublevector(实际上是在本例中使用的具有double成员的对象)。我需要从这个vector中删除最小的非唯一值。但是,不保证存在非唯一值。允许对范围进行排序。一如既往,我开始寻找std::algorithm并找到了std::unique。在我的第一个想法中,我会将其与std::sort结合使用,将所有非唯一值移动到vector的末尾,然后对非唯一值使用min_element。但是,std::unique将在末尾留下非唯一值处于未指定状态。事实上,我失去了所有非POD成员。有没有人建议如何有效地做到这一点?有效地执行此操作很重要,因为代码用于程序的瓶颈(已经有

c++ - 任何用于测试 4 是否在 [1,2,3,4]( vector )中的内置函数

在Ruby中我可以做:[1,2,3,4].include?(4)#=>True在Haskell中我可以做:4`elem`[1,2,3,4]#=>True我应该用C++做什么? 最佳答案 这里是一个使用查找的例子:#include#include#includeintmain(){std::vectorNum(4);//insertvaluesNum[0]=1;Num[1]=2;Num[2]=3;Num[3]=4;std::vector::iteratorp=find(Num.begin(),Num.end(),4);if(p==Nu

c++ - STL vector 如何提供随机访问

昨天晚上我在工作中使用std::vector,我突然想到这个问题:vector如何提供随机访问?我尝试查看代码但没有成功。谁能指点一下?谢谢,阿伦 最佳答案 Vector在底层使用连续内存,因此它提供随机访问的方式本质上与数组相同:它知道元素的起始地址和大小,并进行一些指针数学运算。 关于c++-STLvector如何提供随机访问,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1

c++ - 如何检查两个 std::vector 是否只包含相同的元素?

我需要一个算法或一个标准库函数来比较两个vector元素,如下所示:classUtility{templatestaticboolCheckIfVectorsEquivalent(conststd::vector&Vec1,conststd::vector&Vec2){//???}};在以下规范下工作:std::vectorv1,v2,v3,v4,v5,v6,v7,v8;//Returnsfalsewhennotalltheelementsarematchingbetweenvectorsv1.push_back(1);v1.push_back(3);v1.push_back(5);v