草庐IT

vector_c

全部标签

c++ - 遍历 vector 的元素时索引类型应该是什么?

这个问题在这里已经有了答案:Iterationoverstd::vector:unsignedvssignedindexvariable(18个答案)关闭6年前。我通常以这种方式迭代vector:for(inti=0;i但是编译器通常会给我这个警告:warning:C4018:'那么如果一个int不对,索引应该是什么类型呢?vector::size()似乎是“size_type”类型,但我宁愿使用更有意义的类型。有什么建议吗?

c++ - 使用 STL 从 map<T,Z> 的键填充 vector<T>

mapm=...;vectorv;v.reserve(m.size);for(map::iteratorit=m.begin();it!=m.end();++it){v.push_back(it->first);}是否有使用某些STL函数的更好的1行版本?编辑:不使用c++11! 最佳答案 可移植:structSelectKey{templateFoperator()(conststd::pair&x)const{returnx.first;}};std::transform(m.cbegin(),m.cend(),std::bac

c++ - 希望在 STL vector 中找到 C++ STL vector

我正在尝试查看vectorv1是否包含在vectorv2中。我的vector是有序的,需要保留顺序。例如,如果v1=(a,b)并且v2=(e,f,a,b),我想在v2中得到一个指向a的迭代器。STLfind只能在vector中找到一个对象。我想我想要的是类似于string::find的东西。STL中有没有函数可以做到这一点? 最佳答案 看起来您想在另一个序列中搜索子序列。你可以用std::search做到这一点来自标准库。autoit=std::search(v2.begin(),v2.end(),v1.begin(),v1.end

c++11 成员函数从 unique_ptr 的 vector 返回原始指针的 vector

我开始使用C++11功能,我喜欢使用智能指针来拥有对象。这是我的类(class):classMyClass{public:vectorget_objs()const;private:vector>m_objs;};语义是MyClass拥有一系列MyObject通过make_unique创建().get_objs()返回一个原始指针vector,以便各种调用者更新对象。因为那些调用者不拥有对象,所以函数不返回vector.但这意味着我需要实现get_objs()像这样:vectorMyClass::get_objs()const{vectorret;for(autoobj:my_objs

c++ - 用于游戏开发的二维 vector 建模

制作我的Asteroids克隆(在C中)我相当喜欢基于vector的实体,但我只是将它们编码为x,y点数组。这对于像Asteroids这样的东西来说已经很好了,但是如果我想制作更复杂的2D模型,我应该怎么做?我注意到有anawfullotof3Dmodellingsoftware在那里,以及关于将3D模型导入一个人的C/C++程序以便与OpenGL一起使用的大量教程和帮助。不过,与3D相比,我对创建基于vector的2D模型更感兴趣,因为我非常乐意继续尝试2D游戏一段时间。是否存在二维建模这样的概念?是否有用于创建和导出2D模型的工具和专门用于导入2D模型的库,或者只是在3D软件中创建

c++ - 将 vector 合并到现有 vector 中

在C++中,给定vectorsrc,dst,两者都已经排序,有没有一种更有效的方法来合并src的内容?进入dst比size_tn=dst.size();dst.insert(dst.end(),src.begin(),src.end());std::inplace_merge(dst.begin(),dst.begin()+n,dst.end());?在我关心的情况下,T是一个很小的(12-16字节,取决于ABI)POD结构,但每个vector包含数百万个元素,因此播放的内存总量在数十到数百兆字节。 最佳答案 如果T难以复制并且您的

c++ - 在 OpenCV 中将 vector 转换为垫子

我正在使用opencv2.4.3使用以下代码执行vector到矩阵的转换:structComponent{cv::Rectbox;doublearea;doublecircularity;}intmain(...){cv::vectorcomponents;cv::MatcomponentMat(components,true);std::cout但是它给出了一个错误,说:OpenCVError:Unsupportedformatorcombinationofformats()inunknownfunction,file...\opencv\modules\core\src\out.c

c++ - 如何将二维 vector 传递给 C++ 中的函数?

如果传递,是值传递还是引用传递?voidprintMatrix(vector>*matrix);...vector>matrix(3,vector(3,0));printMatrix(&matrix1); 最佳答案 自从你的函数声明:voidprintMatrix(vector>*matrix)指定了一个指针,它本质上是通过引用传递的。但是,在C++中,最好避免使用指针并直接传递引用:voidprintMatrix(vector>&matrix)和printMatrix(matrix1);//Functioncall这看起来像一个普

c++ - 子集 vector 并对其进行排序

我正在研究使用Rcpp包将一些C++用于我的R包的简单部分。我是C++新手(但热衷于学习!)。我已经使用优秀的Rcpp实现了一些简单的cpp程序-事实上,这个包激发了我学习C++...无论如何,我遇到了一个简单的问题,如果我能解决这个问题将会有很大帮助。我有一个NumericVector我想要子集然后排序。下面的代码对整个vector进行排序(并且还会处理NA,这正是我所需要的)。我的问题是,假设我想提取此vector的一部分,对其进行排序并使其可用于其他处理-我该怎么做?例如,对于一个长度为10的vector,如何提取和排序5:10的元素?#includeusingnamespace

c++ - std::vector<char> 的自定义分配器被忽略

我试图为std::vector使用自定义分配器,但我注意到std::vector不需要/使用我的分配器中的任何成员函数。这怎么可能?#includestructA:privatestd::allocator{typedefstd::allocatoralloc;usingalloc::value_type;usingalloc::pointer;usingalloc::const_pointer;usingalloc::difference_type;usingalloc::size_type;usingalloc::rebind;//memberfunctionshavebeenre