gpt4 book ai didi

c++ - 与 vector 调用不匹配

转载 作者:行者123 更新时间:2023-11-30 00:45:51 25 4
gpt4 key购买 nike

在我的类(class)中,我尝试创建无符号二维 vector ,然后在获取其大小后在构造函数中对其进行初始化。这是我的类(class):

class RobotWorld {
private:
int n;
vector <vector<int>> v;
public:
RobotWorld (int n){
n = n;

v(n, vector<int>(n, n));
for(int i = 0; i < n; ++i){
v[i][0] = i;
}
}
};

当我这样做时,我得到一个错误:对 std::vector 的调用不匹配。你能告诉我我的代码有什么问题以及我如何改进它吗?

最佳答案

你很接近。构造类时,所有成员都在成员初始化列表中初始化。这是您需要进行初始化的地方。当您在构造函数主体中执行此操作时,执行 variable_name(stuff) 会尝试调用函数调用运算符而不是构造函数。这就是为什么您会收到编译器错误的原因,因为 vector 没有这样的运算符。我们可以将代码更改为

RobotWorld (int n) : n(n), v(n, vector<int>(n, n)){
for(int i = 0; i < n; ++i){
v[i][0] = i;
}
}

现在 nv 都得到了正确的初始化,然后您就可以操作 vector 了。

关于c++ - 与 vector 调用不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41188782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com