如何调整2D C++向量的大小?

use*_*007 7 c++ resize vector

我有一个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].