二維vector數組初始化方法

在用devcpp編譯程序時發現,二維vector數組如果只定義的話,不指定元素個數也不進行初始化的時候會導致編譯出錯。
通常情況下,可以只提供vector對象容納的元素數量而略去初始值。此時庫會創建一個值初始化的元素初值,並把它賦給容器中的所有元素。這個初值由vector對象中元素的類型決定。
二維數組初始化方法目前有以下兩種:

第一種初始化方法(以元素類型爲int爲例)

初始化爲1:

vector<vector<int>> vec(row, vector<int> (col,1));

第二種初始化方法

初始化爲1:

	vector<vector<int>> vec;
	vec.resize(row);
	for(int i = 0; i < vec.size(); i++) {
		vec[i].resize(col);
	}
	for(int i = 0; i < row; i++) {
		for (int j = 0; j < col; j++) {
			vec[i][j] = 1;
		}
	}

完整程序

#include <iostream>
#include <vector>
using namespace std;

void print(const vector<vector<int>> vec) 
{
	for(int i = 0; i < vec.size(); i++) {
		for(int j = 0; j < vec[0].size(); j++) {
			cout<<vec[i][j]<<"\t"; 
			if(j == vec[0].size() - 1)
			cout<<endl;
		}
	}
}
int main()
{
	int row = 9;
	int col = 9;
	//vector<vector<int>> vec(row, vector<int> (col,1));
	vector<vector<int>> vec;
	vec.resize(row);
	for(int i = 0; i < vec.size(); i++) {
		vec[i].resize(col);
	}
	for(int i = 0; i < row; i++) {
		for (int j = 0; j < col; j++) {
			vec[i][j] = 2;
		}
	}
	print(vec);
}

效果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章