hav*_*arc 5 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<trajectory_data> default_data;
...
};
Run Code Online (Sandbox Code Playgroud)
但是我实际上没有向向量添加数据集,这些都没有工作:
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);
};
Run Code Online (Sandbox Code Playgroud)
根据push_back参考和C++向量push_back,我认为这应该很容易,但即使经过几次谷歌搜索,我也找不到任何答案.
这个项目涉及到html/javascript中的交叉编码,每当我切换回c ++时,我似乎都会碰到这样的墙,它开始让我神经紧张.
你似乎是最烦恼的解雇的受害者.基本上,这条线
trajectory_data d1();
Run Code Online (Sandbox Code Playgroud)
实际上是声明一个不带参数的函数d1并返回一个trajectory_data对象.
把它改成
trajectory_data d1;
Run Code Online (Sandbox Code Playgroud)
应该解决你的问题,同样的d0.无论如何都会调用默认构造函数,不需要().