二维矢量数据成员
2-dimensional vector data member
我收到EXC错误访问错误。不知道问题是什么。我正在尝试测试 2d 载体内的单元格。我希望它打印 0 的 20x20 网格
struct Cell {
int test;
Cell(): test(0) {}
};
class Board {
public:
Board() {
for (int i = 0; i < 20; i++) {
Cell temp;
cellVec[i].resize(20, temp);
}
}
friend ostream& operator<<(ostream& out, const Board& boardPrint) {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
out << boardPrint.cellVec[i][j].test;
}
}
return out;
}
private:
vector< vector<Cell> > cellVec;
};
int main() {
Board newBoard;
cout << newBoard;
}
在代码中,cellVec
是默认初始化的,不包含任何元素。然后尝试像cellVec[i]
一样访问它的元素会导致 UB。
您可以将cellVec
初始化为包含成员初始值设定项列表中的 20 个元素,例如
Board() : cellVec(20) {
// initialize cellVec as containing 20 default-initialized std::vector<Cell>s which containing no elements
for (int i = 0; i < 20; i++) {
Cell temp;
cellVec[i].resize(20, temp);
}
}
或直接
Board() : cellVec(20, std::vector<Cell>(20)) {}
// initialize cellVec as containing 20 std::vector<Cell>(20)s which containing 20 Cells
相关文章:
- 二维矢量数据成员
- 使用什么数据结构来存储基于游戏对象的二维单元地图?
- 用于在具有更新查询的二维矩阵中查找最大值的最佳数据结构
- C/C++中固定长度实输入数据的高效二维FFT
- 使用c/awk/shell对二维数据进行双线性插值
- 您将使用哪种数据模型在 QML 中制作二维字段 100*100
- visual 将文件中的数据存储到C++中的二维数组中
- 将二维数组从数据文件传递给函数并输出内容
- 如何在二维数组中存储数据并使用2个循环显示二维
- 静态声明的二维数组C++为类的数据成员
- 二维数组的 MPI 数据类型
- 将指向数据的指针作为参数传递给期望二维数组的函数
- 多维数组数据成员的运行时错误
- 如何在大型二维数组中存储数据
- 如何使用二进制搜索C++从二维数组中输出数据
- 无法将二维数组中的数据打印到C++的输出文件
- 如何在C++中为矢量数据结构中的二维数组获取用户输入,而不使用行和列上的两个for循环
- 为什么我将数字数据从文本文件导入二维数组的代码不起作用
- 无法创建数组大小 [300][300] 的二维数据结构 - >堆栈溢出
- 利用GDAL/OGR库实现二维地理参考栅格数据阵列的栅格数据重投影