草庐IT

static_vector

全部标签

c++ - 在结构 vector 中初始化一个 vector

我有一个包含vector的结构vector,但我不知道如何初始化结构中的字段。我有以下代码:structmember{vector>rival_result;intmatches;}vectorranking(n);我想将结构内vector的大小设置为另一个vector的大小,并在所有字段(匹配项和对vector的整数)中设置0。N可以是一个很大的数字,因此无法手动完成。谢谢。 最佳答案 首先为member编写一个构造函数来设置vector的大小:structmember{explicitmember(intn):rival_res

c++ - 警告 : non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]

这个问题在这里已经有了答案:C++ArrayInitializersWarnings(2个答案)关闭8年前。我刚刚在我的机器上安装了最新版本的cygwin和eclipseluna。它工作正常,我能够运行我的项目。但是,当我构建它们时,我收到了我不明白的警告。例如,这是我从“c++Primer”一书的网站上获得的头文件“Sales_item.h”的警告:warning:defaultedanddeletedfunctionsonlyavailablewith-std=c++11or-std=gnu++11[enabledbydefault]Sales_item()=default;^..

c++ - static_pointer_cast<Derived> pReallyABase = static_pointer_cast<Derived>(pBase) 有效!为什么?

这个问题在这里已经有了答案:Downcastingusingthe'static_cast'inC++(3个答案)关闭8年前。我不明白为什么会这样。pReallyABase是一个向下转换的shared_pointer,它指向一个基类实例。我理解为什么编译器让我调用pReallyABase->onlyForDerived()因为我将它定义为派生类指针,但是当我尝试使用该指针调用派生类函数时为什么没有出现运行时错误?classBase{public:virtualstringwhatAmI(){return"IamaBase";}};classDerived:publicBase{publ

c++ - Vector size() 返回看似随机的大整数

我正在编写一个作业程序,遇到了一个奇怪的问题。当尝试使用size()函数获取二维vector的大小时,我得到看似随机的大整数,这使我的程序无法运行。我需要大小来访问vector中的元素。我的头文件:#ifndef_MATRIX_H#define_MATRIX_H#include#includeclassMatrix{private://intdimension;std::vector>matrix;public:Matrix();Matrix(std::vector>);voidprint();Matrixoperator-(Matrixoperand);};#endif我的实现文件:

c++ - 在跳过对角线的 vector 上映射上三角矩阵

我有一个问题可以归结为找到一种将三角矩阵映射到跳过对角线的vector的方法。基本上我需要使用Gecode库翻译这段C++代码//impliedconstraintsfor(intk=0,i=0;i进入这个MiniZinc(功能)代码constraintforall(iin1..m-1,jini+1..m)((differences[?])>=(floor(int2float((j-i)*(j-i+1))/int2float(2))));我需要找出differences[?]中的索引。MiniZinc是一种函数/数学语言,没有合适的for循环。因此,我必须将那些触及上三角矩阵所有且仅触

c++ - DosBox 中的 vector 头文件

我正在使用DosBox0.74并且我想使用vectors函数,但是我找不到它的头文件?它不是也不.我在VisualStudio中尝试过,它运行良好。它在DosBox中有不同的名称还是什么?请帮助我,因为我必须使用DOSBox提交我的工作。 最佳答案 vector是在TurboC++之后用C++实现的。事实上,C++(作为我们今天所知的标准化语言)直到TurboC++之后才存在!这是一个真正古老的IDE,任何人都会建议不要使用它。最好使用本世纪的IDE。因此,没有像这样的STL库在TurboC++中。简单地说,您不能在TurboC++

c++ - 排序 vector 上 std::lower_bound 的时间复杂度

我正在研究http://www.cplusplus.com/reference/algorithm/upper_bound/的std::upper_bound我发现这可能会在非随机访问迭代器上以线性时间运行。我需要将其用于排序vector。现在我不知道什么是非随机访问迭代器以及它是否会在排序后的vector上以对数时间运行。谁能帮我解决这个问题。 最佳答案 §23.3.6.1[vector.overview]/p1:Avectorisasequencecontainerthatsupportsrandomaccessiterator

c++ - 如何传递特征矩阵行引用,将其视为 vector ?

我有一个对Vector引用进行操作的函数,例如voidauto_bias(constEigen::VectorXf&v,Eigen:Ref>out){out=...}有时我需要让这个函数在Matrix行上运行。现在,因为默认的内存布局是列优先的,所以我不能只将行指向的数据映射到vector中。那么,如何将行传递给上述函数以便我可以对其进行操作?不太好的解决方案是有一个临时vector,例如VectorXftmpVec=matrix.row(5);auto_bias(otherVector,tmpVec);matrix.row(5)=tmpVec;但是有没有办法直接做呢?

c++ - 没有 "predicate"的对 vector 上的 max_element

我想找到pairs的vector的最大元素。我的标准是:最大元素是一对中第二个值最高的元素。我这样做了:automax_angle=std::max_element(begin(angles),end(angles),[](conststd::pair&left,conststd::pair&right){returnleft.second不写谓词是否可以做到?由于它是标准结构,是否有更简单的配对方法? 最佳答案 不,你不能,因为默认情况下std::pair是按字典顺序比较的,这意味着从左到右逐元素。因此,您的解决方案是您可以拥有的

c++ - 如何从一个 vector 计算坐标系?

如何只给定一个vector来创建坐标系?(左手、右手、本地或不同空间)我正在寻找只给定一个vector的局部坐标系统算法:原因:1)Z可能是表面法线,那么X和Yvector就是切线和副切线vector2)另一个原因是光线追踪:对光源进行采样。给定一个交点,从该点构建局部坐标系,然后追踪光线到光的形状。Vector3Z={0.0f,0.0f,1.0f};//given//fillxandyCreateXHandedCoordinateSystem(Vector3*X,Vector3*Y,constVector3&Z){//implementationgoeshere..//evaluat