C++不能将数据放入向量中

c++ can't put data into vector

本文关键字:向量 数据 不能 C++      更新时间:2023-10-16

我有一个数据结构和一个处理器类的数据,数据堆叠没有指针更快的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;
    ...
};

但我实际上没有向向量添加数据集,这两种方法都不起作用:

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);
};

根据push_back参考和c++ vector push_back,我认为这应该很容易,但即使经过几次谷歌搜索,我也找不到任何答案。

这个项目涉及html/javascript的交叉编码,每次我切换回c++时,我似乎都遇到了这样的瓶颈,它开始让我心烦。

你似乎是最令人烦恼的解析的受害者。基本上,

这行
trajectory_data d1();

实际上声明了一个函数d1,它不接受参数,返回一个trajectory_data对象。

更改为

trajectory_data d1;

应该解决你的问题,同样的d0。默认构造函数无论如何都会被调用,不需要() .

试试这个:default_data.push_back(trajectory_data());

trajectory_data d0();更改为trajectory_data d0;

第一个声明了一个函数d0,该函数不接受参数并返回trajectory_data
第二个命令显式地创建了trajectory_data的实例d0

这也适用于trajectory_data d1();