在 class 中调整二维向量的大小
Resize two dimensional vector in a class
我正在尝试调整 class 中的矢量大小。我不知道错误在哪里。希望你能帮助我。
这是我的代码:
class State {
private:
vector<int> numbers;
int score;
public:
int getScore() {
return score;
}
void setScore(int score) {
this->score = score;
}
int getSize () {
return this->numbers.size();
}
void setSize(int size) {
this->numbers.clear();
this->numbers.resize(size);
for (int i = 0; i < size; ++i)
this->numbers[i].resize(size);
}
};
当我尝试编译时,出现此错误:
In file included from ./power.cpp:11:
./power.hpp:45:24: error: member reference base type 'value_type' (aka 'int') is not a structure or union
this->numbers[i].resize(size);
~~~~~~~~~~~~~~~~^~~~~~~
1 error generated.
希望你能帮助我。
提前致谢:)
vector<int> numbers;
声明一个一维向量。在行
this->numbers[i].resize(size);
您假设 numbers[i]
本身是一个向量,但事实并非如此(它是一个 int
)。你可能想要的是声明
vector<vector<int>> numbers;
或"simulate"将二维向量作为一维展平向量(通常更快)但确保从二维映射到一维,反之亦然。
我正在尝试调整 class 中的矢量大小。我不知道错误在哪里。希望你能帮助我。
这是我的代码:
class State {
private:
vector<int> numbers;
int score;
public:
int getScore() {
return score;
}
void setScore(int score) {
this->score = score;
}
int getSize () {
return this->numbers.size();
}
void setSize(int size) {
this->numbers.clear();
this->numbers.resize(size);
for (int i = 0; i < size; ++i)
this->numbers[i].resize(size);
}
};
当我尝试编译时,出现此错误:
In file included from ./power.cpp:11:
./power.hpp:45:24: error: member reference base type 'value_type' (aka 'int') is not a structure or union
this->numbers[i].resize(size);
~~~~~~~~~~~~~~~~^~~~~~~
1 error generated.
希望你能帮助我。
提前致谢:)
vector<int> numbers;
声明一个一维向量。在行
this->numbers[i].resize(size);
您假设 numbers[i]
本身是一个向量,但事实并非如此(它是一个 int
)。你可能想要的是声明
vector<vector<int>> numbers;
或"simulate"将二维向量作为一维展平向量(通常更快)但确保从二维映射到一维,反之亦然。