【发布时间】:2019-09-05 12:41:57
【问题描述】:
我想初始化一个二维向量,但我不断收到错误消息
如果我写这段代码
unsigned long size = 101;
double initialmPo = 63;
std::vector<std::vector<Soil> > matrixPotential(
size, std::vector<Soil>(size));
我没有问题 但是如果我写这段代码
std::vector<std::vector<Soil> > matrixPotential(
size, std::vector<Soil>(size, initialmPo));
我得到消息
no matching constructor for initialization of std::vector< Soil >
我想要一个 101*101 的向量,向量内部是 63 的值(数字)。
那是我的土壤课
class Soil
{
public:
Soil();
double A;
double B;
double C;
double D;
};
#endif // SOIL_H
我该怎么办?
【问题讨论】:
-
请通过添加所需的
#includes 和主函数来提供minimal reproducible example。 -
在重载模板函数中进行选择时(在这种情况下,
vector<Soil>的构造函数编译器不会查看转换。没有构造函数将double作为其第二个参数。要么更改initialmPo的类型为int或在您的代码中将其转换为int。
标签: c++ class vector 2d default