草庐IT

vectorize

全部标签

c++ vector assign() 方法经常失败

我有一个浮点vector,它在运行时使用assign()方法多次调整大小和清空,但每次我切换到较小的大小时它都会失败并抛出异常Vectorsubscriptoutofrange.声明:std::vectorbuffer;size_tsize,c;设置大小和删除旧内容:voidSetBuffersize(size_tsz){//Resizevector//buffer.resize(sz);//reallynotneeded?//Deleteoldcontentbuffer.assign(sz,0);}有一个正在运行的线程不断访问这个vector:voidProcess(){if(++c

python - swig:如何使 QList<T> 可迭代,如 std::vector

我正在使用SWIG为我的qt应用生成Python绑定(bind)。我有几个地方使用QLists,我想集成SWIG库中的std::vector之类的QList(参见http://www.swig.org/Doc1.3/Library.html#Library_nn15)。这意味着:QList对象应该是可从python迭代的(=它们必须是可迭代的python对象)应该可以将python列表传递给采用qlist的函数...以及std::vector的SWIG库中列出的所有其他功能为此,我使用以下代码:https://github.com/osmandapp/OsmAnd-core/blob/

c++ - 指向结构的 std::vector 的指针

structStruct_t{intValue1;intValue2;};vectorStruct;Struct.resize(10,Struct_t());for(inti=0;i如何创建指向Struct[i]的指针?我想做的基本上是这样的,但我相信这可以做得更好:intvalue=6;Struct_ttemp=Struct[value],*s;s=&temp;s->Value1=42;s->Value2=6;主要目标是,我可以使用1行/函数轻松创建指向Struct[n]的指针。 最佳答案 到目前为止,提供的答案缺少房间里的大象。

c++ - 计算以恒定加速度对齐两个 3D vector 所需的扭矩?

我目前正在为卫星游戏构建一个简化的react控制系统,并且需要一种方法来使用该系统将卫星对准世界空间坐标中的给定单位方向。因为这是一个游戏模拟,所以我伪造了系统,只是在物体震中周围施加扭矩力。这很困难,因为在我的例子中,扭矩的强度不能变化,它要么打开要么关闭。要么全力以赴,要么无力。计算需要施加扭矩的方向相对容易,但我很难让它完美对齐而不会失控并陷入逻辑循环。它需要在精确的“时间”施加反作用力,以零角速度降落在目标方向上。到目前为止我确定的是,我需要根据我当前的角速度和两个vector之间的角度计算达到零速度所需的“时间”。如果这超过了我达到零角的时间,那么它需要施加相反的扭矩。从理论

c++ - 在不复制的情况下构造一个范围内的 vector

我有一个类包装了大量字节,这些字节是网络数据包。该类实现了一个队列并提供(除其他外)front()函数,该函数返回构成队列中最旧数据包的字节常量vector。classBuffer{unsignedchardata[65536];unsignedintoffset;unsignedintlength;[...]//otherfieldsformaintainingwriteptretc.public:conststd::vectorfront(){returnstd::vector(data+offset,data+offset+length);}//othermethodsforac

c++ - 在 C++ 中存储一组坐标集(成对 vector 的 vector ?)

首先,我是C++的新手,所以我可能不得不深入研究伪代码和/或Python来解释我正在尝试做的事情...我正在尝试为动画的每一帧存储多个Sprite的X和Y坐标对。我设想这类似于以下内容-假设PLAIN==1(使用枚举):animationFrames[PLAIN][0]={20,50}animationFrames[PLAIN][1]={25,55}等等。我基本上希望能够使用相关Sprite的ID查询animationFrames并接收一组X、Y坐标以进行迭代。我发现这很棘手。这是我的尝试,但没有用...std::vector>>frames={{{1,1},{2,2}//twofra

c++ - std::span.size() 与数组/vector 大小

我们在工作中使用std::span()(目前使用gsl实现)。最近我们发现将std::span.size()与vector.size()进行比较会产生-Wsign-compare错误:if(span.size()>vector.size())//comparisonbetweensignedandunsignedintegerexpressions[-Wsign-compare]我认为我们不想对这些比较中的每一个进行转换。我们的编码指南将这些警告视为错误。想知道是否有人有任何想法或建议? 最佳答案 您可以使用迭代器并同时使用函数st

c++ - 使用 Swig 将 Python 数组传递给 C++ vector

我在Python中有一个对象数组[obj1,obj2,obj3]我想将它们传递给C++函数以执行一些计算。我正在使用SWIG编写我的界面。传递对象的类类型已在C++中定义。执行此操作的最佳方法是什么? 最佳答案 这取决于您的函数是否已经编写且无法更改,在这种情况下,您可能需要检查Swig文档以查看是否已经存在从PyList到std::vector的类型映射(我认为存在)。如果不是,将PyObject*作为函数的参数并使用PythonCAPI来操作列表应该可以正常工作。到目前为止,我还没有遇到任何问题。对于self文档,我建议将PyO

c++ - 指向抽象类的指针 vector ,用于访问派生类成员

我是C++的新手,正在尝试实现一个turtle模拟器,它将从文本文件中读取命令,将它们放在一个vector上并使用glut绘制它们我有节点类、从节点派生的命令类、来自命令的4个派生类(forward、left、right、jump、repeat)和用于存储命令的Prog类。classnode{public:node();virtual~node();virtualvoidRun()=0;};classcommand:publicnode{private:floatv;public:command();command(float);~command();virtualvoidRun();

c++ - 修剪字符串 vector

我有一个std::vector的std::strings包含类似这样的数据:[0]=""[1]="Abc"[2]="Def"[3]=""[4]="Ghi"[5]=""[6]=""如何获得包含从1到4的4个字符串的vector?(即我想从vector的开头和结尾修剪所有空白字符串):[0]="Abc"[1]="Def"[2]=""[3]="Ghi"目前,我正在使用前向迭代器到达"Abc"并使用反向迭代器返回"Ghi",然后使用这些迭代器构建一个新的vector。这种方法可行,但我想知道是否有更简单的方法来修剪这些元素。附言我是C++菜鸟。编辑另外,我应该提到vector可能完全由空白字符