C++ c++;can';不要把数据放入向量中
我有一个数据结构和一个数据处理器类,数据堆叠时没有指针,以便更快地进行SIMD处理:C++ c++;can';不要把数据放入向量中,c++,vector,push-back,C++,Vector,Push Back,我有一个数据结构和一个数据处理器类,数据堆叠时没有指针,以便更快地进行SIMD处理: struct trajectory_data { float position[3]; float velocity[3]; float acceleration[3]; ... }; class trajectory_processor{ private: vector<trajectory_data> tdata; vector<traje
struct trajectory_data {
float position[3];
float velocity[3];
float acceleration[3];
...
};
class trajectory_processor{
private:
vector<trajectory_data> tdata;
vector<trajectory_data> default_data;
...
};
struct轨迹\u数据{
浮动位置[3];
浮速[3];
浮动加速度[3];
...
};
类处理器{
私人:
矢量数据;
矢量数据;
...
};
但我没有向向量添加数据集,这两种方法都不起作用:
trajectory_processor::trajectory_processor(){
// gives error: no match for ‘operator=’ in ...
trajectory_data d0();
default_data[0] = d0;
// gives error: no matching function for call to
// ‘std::vector<trajectory_data>::push_back(trajectory_data (&)())
trajectory_data d1();
default_data.push_back(d1);
};
轨迹处理器::轨迹处理器(){
//给出错误:中的“运算符=”不匹配。。。
轨迹_数据d0();
默认_数据[0]=d0;
//给出错误:没有用于调用的匹配函数
//'std::vector::push_back(轨迹数据(&)()
轨迹_数据d1();
默认数据。推回(d1);
};
据我所知,我认为这应该很容易,但即使在几次谷歌搜索之后,我还是找不到任何答案
这个项目涉及到HTML/JavaScript中的交叉编码,每次切换到C++时,我都会碰到这样的墙,它开始在我的神经中穿插。 < P>更改<代码> TraceCuryyDATA DATA()代码>至
轨迹数据d0代码>
第一个声明了一个函数d0
,该函数不带任何参数,并返回轨迹\u数据
第二个显式且清晰地创建了名为d0
的轨迹数据的实例
这也适用于轨迹_数据d1()代码>你似乎是这场灾难的受害者。基本上,这条线
trajectory_data d1();
实际上是在声明一个函数d1,该函数不带任何参数,并返回一个tracture\u data
对象
改成
trajectory_data d1;
应该可以解决您的问题,对于d0
也是如此。默认构造函数无论如何都会被调用,不需要()
试试这个:默认数据。向后推(轨迹数据())代码> 这里可能是错误的,但是我认为这是一个微妙的C++解析错误,它使用的是TraseTraceTyyDATA D0.()。这被解释为函数声明,函数被称为d0并返回轨迹数据。尝试删除()。不过,如果您依赖于值初始化,则需要将其更改为轨迹_数据d1=轨迹_数据()代码>或轨迹_数据d1{}代码>如果你能使用C++11。谢谢,我想我不应该在只睡了四个小时后就这么努力了。你只是阻止了一个程序员放弃C++,跳过NoDE.js: