我正在尝试将结构中的数据分配给std :: vector
这是代码
struct myArray
{
double * data;
size_t len;
};
typedef std::vector<double> DoubleVect;
DoubleVect myvect;
MyArray myarr;
// code to initialize alloc and populate the MyArray variable
// ....
myvect.assign(&myarr.data, &myarr.data + myarr.len); // compiler barfs here ...
知道为什么吗?我该如何解决这个问题?
答案 0 :(得分:4)
是。摆脱地址运算符,它会没事的。获取数据成员data
的地址会为您提供类型为double**
的表达式。这当然不是你想要的。