我有一个2D char矢量:
vector< vector<char> > matrix;
Run Code Online (Sandbox Code Playgroud)
我将在矩阵中读取输入并将其存储在该向量中.我的矢量大小是固定的,是ROW x COL.我想我需要为每一行和每列调整大小.
如何在不占用额外内存(正确调整大小)的情况下完成它?
lee*_*mes 15
给定向量为空,您可以简单地使用预分配的内部向量调整外部向量,而无需循环:
matrix.resize(COL, vector<char>(ROW));
Run Code Online (Sandbox Code Playgroud)
或者,在初始化时或者如果要重置非空向量时,可以使用构造函数重载来获取大小和初始值来初始化所有内部向量:
matrix = vector<vector<char> >(COL, vector<char>(ROW));
Run Code Online (Sandbox Code Playgroud)
根据您的矩阵是列式还是行式,您需要交换参数ROW和COL.第一个(外部向量上的第一个参数)是您访问矩阵的第一个维度,即我假设您使用它来访问它matrix[col][row].