在调用中使用 std::vector,<double>但收到有关 std::vector<double、std::分配器>正在使用的错误<double>
Using a std::vector<double> in call but getting an error about std::vector<double, std::allocator<double> > being used
我有一个函数,它创建一个向量,然后使用该向量作为输入调用类构造函数,但它返回一个错误
undefined reference to Class::Class(std::vector<double, std::allocator<double> >)
该类具有
std::vector<double>
但不是
std::vector<double, std::allocator<double> >
一些示例代码:
std::vector<double> x1;
std::vector<double> x2;
std::vector<double> myvec;
double thisX;
for (int i=0; i<x1.size(); i++ {
thisX = x1[i];
myvec.push_back(thisX);
}
for (int i=0; i<x2.size(); i++ {
thisX = x2[i];
myvec.push_back(thisX);
}
Class MyClass( myvec );
// has a constructor for std::vector<double>
// compiler throws the undefined reference to
// Class::Class(std::vector<double, std::allocator<double> >)
任何见解都值得赞赏!如果不是很明显,我对C++相对较新。
std::vector<double>
是std::vector<double, std::allocator<double> >
的简称,因为std::vector<>
的第二个模板参数默认为std::allocator<T>
。
错误的原因不同。
undefined reference to Class::Class
错误意味着存在此构造函数的声明,但没有定义。
您可能没有将对象文件或库与Class::Class
的定义链接。需要链接它以解析该未定义的引用。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- C++在数学计算中将double转换为int
- 在c++中为double类型的数组创建一个unique_ptr
- vector<vector<double>> to mxArray using memcpy
- (double) 和 double() 之间的区别
- C++标准是否允许<double>在没有开销的情况下实现 std::可选
- C++ Version Of Double.longBitsToDouble
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- 为什么 nlohmann/json 序列化 "null" 而不是在 double 上"0"?
- 使用 std::vector<double> 访问由 std::unique_ptr<double[2] 管理的数据>
- 将 std::vector<double> 从 C++ 包装到 C 以在 Swift 中使用
- 错误:无法将"<lambda(double)>"转换为"double(*)(double)"
- 如何正确将"strings"转换为"double"?
- 如何在<double>矢量中创建复杂类型的模板<T>?
- "double* grade"、"double *grade"和"double* fn()"有什么区别?
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ