草庐IT

initialization-vector

全部标签

c++ - vector < vector > : verify that all have equal sizes

是否有std/boost算法来验证一个vector中的所有vector是否具有相同的大小?推而广之,所有元素的属性都相同吗?在下面的示例中,我使用了我正在寻找的假设的std::all_equal:typedefstd::vectorLine;std::vectorlines;lines.push(Line(10));lines.push(Line(11));autoequalLengths=std::all_equal(lines.begin(),lines.end(),[](constLine&x){returnx.size();});(并且通过扩展:std::vectorvec;a

c++ - 从 vector<point2f> 创建 Mat

我对计算机视觉和opencv库非常陌生。我已经进行了一些谷歌搜索,试图找到如何从Point2fsvector制作新图像,但没有找到任何有效的示例。我看过vectortoMat但是当我使用这些示例时,我总是会出错。我在this工作示例和任何帮助将不胜感激。代码:我传入occludedSquare。resize(occludedSquare,occludedSquare,Size(0,0),0.5,0.5);MatoccludedSquare8u;cvtColor(occludedSquare,occludedSquare8u,CV_BGR2GRAY);//converttoabinary

c++ - 用 sse 累加整数 vector

我试图更改此代码以处理std::vector.floataccumulate(conststd::vector&v){//copythelengthofvandapointertothedataontothelocalstackconstsize_tN=v.size();constfloat*p=(N>0)?&v.front():NULL;__m128mmSum=_mm_setzero_ps();size_ti=0;//unrolledloopthataddsup4elementsatatimefor(;i引用:http://fastcpp.blogspot.com.au/2011/0

c++ - 我们什么时候应该使用圆括号 ( ) 与 initializer { } 语法来初始化 C++11 中的对象?

这个问题在这里已经有了答案:Whentousethebrace-enclosedinitializer?(3个答案)关闭6年前。已更新我已经通过链接(例如Whentousethebrace-enclosedinitializer?)了解何时应该使用{}大括号初始化,但没有给出何时应该使用括号()的信息与初始值设定项{}在C++11/14中初始化对象的语法?建议使用哪些标准做法()在{}?在极少数情况下,例如vectorv(10,20);或autov=vector(10,20);,结果是std::vector有10个元素。如果我们使用大括号,结果是std::vector有2个元素。但这取

c++ - 为什么语句 “vector<int>(v1);”会失败

Avector(v1)expression产生一个临时对象,可以放在operator=的右侧,但如果我们使用vector(v1)表达式作为语句,它将在VisualStudio201010.0.30319.1RTMRel中失败。详细的错误信息在下面代码的注释中。为什么会这样?vectorv1;v1.push_back(10);v1.push_back(20);v1.push_back(30);vectorv3=vector(v1);//OK,deliberatelycodelikethis.vector(v1);//errorC2086:“std::vectorv1”:redefinit

c++ - 使用多个输入 vector 中值的笛卡尔积调用 lambda

我有几个int或double的vector:std::vectoriv={1,2,3,4};std::vectorjv={.5,1.,1.5,2.};std::vectorkv={5,4,3,2};我需要处理每个vector的笛卡尔积:for(inti:iv){for(doublej:jv){for(intk:kv){process(i,j,k);}}}我想把它压缩成一个电话product(iv,jv,kv,[=](inti,doublej,intk){process(i,j,k);});输入vector的数量是可变的存储在输入vector中的类型是可变的这可能吗?(我正在使用C++1

c++ - std::array<std::vector> 中的大括号省略

我正在为C++17使用g++进行编译。我有以下内容:std::array,2>v={{{1,2},{3,4}}};我不明白为什么如果我删除数组的双括号它就不再起作用了。std::array,2>v={{1,2},{3,4}};//Doesnotcompile我了解std::array的工作原理以及通常需要双大括号,但在为C++17进行编译时,我希望大括号省略发挥作用。为什么大括号省略在这里不适用? 最佳答案 std::array,2>是有效的structarray{std::vectorelems[2];};elems是一个子聚合就

c++ - 解决 "only static const integral data members can be initialized within a class"编译错误

以下创建全局对象会导致编译错误。#include"stdafx.h"#includeusingnamespaceSystem;usingnamespacestd;#pragmahdrstopclassTester;voidinput();classTester{staticintnumber=5;public:Tester(){};~Tester(){};voidsetNumber(intnewNumber){number=newNumber;}intgetNumber(){returnnumber;}}TestertesterObject;voidmain(void){cout>ne

C++ Vector,从另一个线程崩溃的 push_back?

我使用已检查的STL实现在我的代码中出现意外的断言失败。经过一些研究,我将问题缩小到一个vector中的push_back,该vector是从与创建该vector的线程不同的线程调用的。重现此问题的最简单代码是:classSomeClass{private:std::vectortheVector;public:SomeClass(){theVector.push_back(1);//Ok}voidadd(){theVector.push_back(1);//Crash}};唯一的区别是SomeClass是从我的主线程实例化的,而add是从另一个线程调用的。但是,没有并发问题:在我用于

c++ - 对( double )实数 vector 进行排序并获得它们

在C++中,想要对较长的(2^20)实数vector进行排序,显然sort()可以解决问题。在我习惯了漂亮的order()函数之前使用过R,该函数产生导致排序vector的排列。例子:x={24,55,22,1}然后是排列perm={3,2,0,1}按升序将原始x映射到排序后的x。我或许可以实现一些冒泡排序,它不仅对x进行排序,而且对vector{0,1,2,...}执行相同的转置并输出两者,但我相信有人一定已经考虑过了,尤其是高效地完成了。 最佳答案 我想说最好的方法是创建一个整数0..N的vector,然后使用比较函数对该数组进