草庐IT

vector_c

全部标签

c++ - 在 C++ 类中创建二维 vector

我需要创建一个充满整数的vectorvector。但是,我不断收到错误:错误:在数字常量之前需要标识符错误:数字常量前应为“,”或“...”usingnamespacestd;classGrid{public:Grid();voiddisplay_grid();voidoutput_grid();private:vectorrow(5,0);vector>puzzle(9,row);introws_;intcolumns_;}; 最佳答案 您不能在声明成员变量的地方对其进行初始化。为此在构造函数中使用初始化列表:Grid::Grid

c++ - 参照同一 vector 的数据插入 vector

我目前处于一种情况,我想复制vector中的一些元素。简而言之,我的代码类似于以下内容:std::vectorv;//...autotoDuplicate=std::find(v.begin(),v.end(),[](constMyStruct&s){returntrue;/*Inreality,abitmorecomplex*/});v.insert(toDuplicate,nrOfDuplicates-1,*toDuplicate);//Signature:insert(iterator,size_t,constvalue_type&)因此,在这种情况下,如果容量小于最终容量,st

c++ - 如何在 C++ 中生成任意嵌套的 vector ?

在C++中,是否可以生成深度(维度)等于用户定义输入的嵌套vector?例如,如果用户输入一个值为2的整数,程序可能会创建一个类型为vector>>的对象。.显然,在C++中还有许多其他方法可以轻松实现类似的行为,但我纯粹感兴趣的是是否可以实际生成任意嵌套的vector。最初,我认为这会很微不足道,但我的实现都以相当奇怪的方式失败了。#include#includeusingnamespacestd;templatevoidvec_print(vectorin){cout::iteratori=in.begin();i!=in.end();++i){coutvoidvec_print(

c++ - 如何在 C++ 中组合两个或多个任意类型的 vector

我有以下代码将任意类型的两个vector组合成一个组合,即std::vector>.templatestd::vector>combine(conststd::vector&a,conststd::vector&b){constautocombine_parts_=[](constA&x,constB&y){autoresult=std::tuple_cat(std::make_tuple(x),std::make_tuple(y));returnresult;};std::vector>results;for(constauto&x:a){for(constauto&y:b){res

c# - 如何将 vector<int> 从 C++ dll 编码到 C# 应用程序?

我有一个C++函数可以生成一个有趣的矩形列表。我希望能够从C++库中获取该列表并返回到调用它的C#应用程序中。到目前为止,我正在像这样对矩形进行编码:structImagePatch{intxmin,xmax,ymin,ymax;}然后对一些vector进行编码:voidMyFunc(...,std::vector&rectanglePoints){std::vectorpatches;//thisisfilledwithrectanglesfor(i=0;i与C#交互的header看起来像(并且适用于许多其他功能):extern"C"{__declspec(dllexport)voi

c++ - 如何在编译时检查类型是否为 std::vector::iterator?

我遇到一个问题,我需要检测给定类型是否是已知嵌套类型的实例,例如std::vector::iterator在编译时。我想创建类型特征is_std_vector_iterator:#include#includetemplatestructis_std_vector_iterator:std::false_type{};templatestructis_std_vector_iterator::iterator>:std::true_type{};intmain(){return0;}但我收到编译器错误:$g++-std=c++0xtest.cpptest.cpp:7:error:tem

c++ - 通过 move 将 vector 附加到另一个 vector (C++11 之前)

我正在处理一些相对较大的整数vector,并且我有一个顶级vector,我需要将其他(临时)vector的结果累积到其中。遗憾的是,就地扩展它不是一个选项,因为我收到了从另一个API预制的临时vector,并且出于同样的原因我坚持使用GCC4.1.2,所以没有一个很好的move语义或标准::C++11的变化。目前我正在使用插入复制,比如:vectoraccumulator;for(){vectortempVector=vectReturningFunction();...if(!tempVector.empty()){accumulator.insert(accumulator.end

c++ - 为什么 std::string 不是 std::vector 的特化?

这个问题在这里已经有了答案:Whyarestringandvectordistincttypes?(4个答案)关闭7年前。将字符串视为字符vector似乎很明显。那为什么string有自己的特殊实现,看起来和vector类的实现很不一样呢?为了说明这一点,这里有一些来自两个类的片段,以表明所需的工作非常相似,例如两者都使用分配器来管理内存。具有特征也可能对vector有用。从std::string的实现中截取的以下内容看起来适合更通用的std::vector实现,如果我们允许vector具有类型特征的话。139template|140class_RWSTDExportTemplateb

c++ - 为什么 std::nth_element 返回 N < 33 元素的输入 vector 的排序 vector ?

我正在使用std::nth_element来获取vector百分位的(大致正确的)值,如下所示:doublepercentile(std::vector&vectorIn,doublepercent){std::nth_element(vectorIn.begin(),vectorIn.begin()+(percent*vectorIn.size())/100,vectorIn.end());returnvectorIn[(percent*vectorIn.size())/100];}我注意到对于最多32个元素的vectorIn长度,vector得到完全排序。从33个元素开始,它永远不

c++ - 如何将提取运算符 (>>) 与 vector<bool> 一起使用?

以vectorsomeVector为例和istringstreamsomeStringStream你可以这样做:for(inti=0;i>someVector[i];}我知道vector是一个有效的实现,operator[]返回一个引用对象。对于这段代码,我应该使用索引而不是迭代器,主要是为了提高可读性。目前,我正在使用这个:for(inti=0;i>temp;someVector[i]=temp;}有没有更直接的实现方法? 最佳答案 如果您想使用整个流,您可以使用std::copy或std::vector范围构造函数:std::s