草庐IT

vector_tostr

全部标签

c++ - 结构初始化 vector

我想知道如何使用push_back方法向我的结构vector添加值structsubject{stringname;intmarks;intcredits;};vectorsub;那么现在我该如何添加元素呢?我有初始化字符串名称(主题名称)的函数voidsetName(strings1,strings2,......strings6){//howcanisetnametoosub[0].name="english",sub[1].name="math"etcsub[0].name=s1//givessegmentationfault;sohowdoIusepush_backmethod

c++ - 移动 vector 是否会使迭代器无效?

如果我有一个指向vectora的迭代器,那么我从a移动构造或移动分配vectorb,该迭代器是否仍然指向同一个元素(现在在vectorb中)?这就是我在代码中的意思:#include#includeintmain(intargc,char*argv[]){std::vector::iteratora_iter;std::vectorb;{std::vectora{1,2,3,4,5};a_iter=a.begin()+2;b=std::move(a);}std::couta_iter是否仍然有效,因为a已被移动到b中,还是迭代器因移动而失效?作为引用,std::vector::swap

c++ - 移动 vector 是否会使迭代器无效?

如果我有一个指向vectora的迭代器,那么我从a移动构造或移动分配vectorb,该迭代器是否仍然指向同一个元素(现在在vectorb中)?这就是我在代码中的意思:#include#includeintmain(intargc,char*argv[]){std::vector::iteratora_iter;std::vectorb;{std::vectora{1,2,3,4,5};a_iter=a.begin()+2;b=std::move(a);}std::couta_iter是否仍然有效,因为a已被移动到b中,还是迭代器因移动而失效?作为引用,std::vector::swap

c++ - 为什么我不能在 C++11 中创建一个 lambda vector (相同类型)?

我试图创建一个lambdavector,但失败了:autoignore=[&](){return10;};//1std::vectorv;//2v.push_back([&](){return100;});//3直到第2行,它compilesfine.但是第3行给出了compilationerror:error:nomatchingfunctionforcallto'std::vector>::push_back(main()::)'我不想要函数指针vector或函数对象vector。但是,封装reallambda表达式的函数对象vector对我有用。这可能吗?

c++ - 为什么我不能在 C++11 中创建一个 lambda vector (相同类型)?

我试图创建一个lambdavector,但失败了:autoignore=[&](){return10;};//1std::vectorv;//2v.push_back([&](){return100;});//3直到第2行,它compilesfine.但是第3行给出了compilationerror:error:nomatchingfunctionforcallto'std::vector>::push_back(main()::)'我不想要函数指针vector或函数对象vector。但是,封装reallambda表达式的函数对象vector对我有用。这可能吗?

c++ - 将 vector<int> 转换为字符串

我有一个vector具有整数的容器(例如{1,2,3,4}),我想转换为格式为的字符串"1,2,3,4"在C++中最简洁的方法是什么?在Python中,我会这样做:>>>array=[1,2,3,4]>>>",".join(map(str,array))'1,2,3,4' 最佳答案 绝对没有Python优雅,但没有什么比C++中的Python优雅。你可以使用stringstream...#include//...std::stringstreamss;for(size_ti=0;i您也可以改用std::for_each。

c++ - 将 vector<int> 转换为字符串

我有一个vector具有整数的容器(例如{1,2,3,4}),我想转换为格式为的字符串"1,2,3,4"在C++中最简洁的方法是什么?在Python中,我会这样做:>>>array=[1,2,3,4]>>>",".join(map(str,array))'1,2,3,4' 最佳答案 绝对没有Python优雅,但没有什么比C++中的Python优雅。你可以使用stringstream...#include//...std::stringstreamss;for(size_ti=0;i您也可以改用std::for_each。

c++ - 替代 vector <bool>

正如(希望)我们都知道,vector完全坏掉了,不能当作C数组来对待。获得此功能的最佳方法是什么?到目前为止,我想到的想法是:使用vector相反,或使用包装类并拥有vector你们如何处理这个问题?我需要c_array()功能。作为一个附带问题,如果我不需要c_array()方法,如果我需要随机访问,解决此问题的最佳方法是什么?我应该使用双端队列还是其他什么?编辑:我确实需要动态调整大小。对于那些不知道的人,vector是专门的,因此每个bool需要1位。因此,您不能将其转换为C样式的数组。我猜“包装”有点用词不当。我在想这样的事情:当然,那我必须读到my_bool由于可能的对齐问题

c++ - 替代 vector <bool>

正如(希望)我们都知道,vector完全坏掉了,不能当作C数组来对待。获得此功能的最佳方法是什么?到目前为止,我想到的想法是:使用vector相反,或使用包装类并拥有vector你们如何处理这个问题?我需要c_array()功能。作为一个附带问题,如果我不需要c_array()方法,如果我需要随机访问,解决此问题的最佳方法是什么?我应该使用双端队列还是其他什么?编辑:我确实需要动态调整大小。对于那些不知道的人,vector是专门的,因此每个bool需要1位。因此,您不能将其转换为C样式的数组。我猜“包装”有点用词不当。我在想这样的事情:当然,那我必须读到my_bool由于可能的对齐问题

c++ - 将 vector 初始化为零 C++/C++11

我知道在C++11中他们添加了将变量初始化为零的功能doublenumber={};//number=0intdata{};//data=0有没有类似的方法将一个固定长度的std::vector初始化为全零? 最佳答案 你不需要初始化列表:std::vectorvector1(length,0);std::vectorvector2(length,0.0); 关于c++-将vector初始化为零C++/C++11,我们在StackOverflow上找到一个类似的问题: