这里是我遇到的一些对于二维vector
容器初始化的一些问题的总结与记录,一共有一下四种情况,随时添加新的方式方法。
初始化一个二维vector,行M,列N
// 初始化一个 二维的matrix, 行M,列N,且值为0
vector<vector<int>> matrix(M,vector<int>(N));
//等价于下面的
vector<vector<int> > matrix(M);
for(int i=0;i<M;i++) {
matrix[i].resize(N);
}
//等价于下面的
vector< vector<int> > matrix;
matrix.resize(M);//M行
for(int i=0;i<matrix.size();i++){
matrix[i].resize(N);//每一行都是N列
}
// 初始化一个 二维的matrix, 行M,列N,且值自定义为data;
vector<vector<int>> matrix(M,vector<int>(N,data));
学会用大括号初始化二维数组
//初始化空的二维vector,到底是{}还是{{}},请看最下面的两个leetcode例题
vector<vector<int>> matrix1{};
或者
vector<vector<int>> matrix1{{}};
//初始化列表
vector<vector<int>> matrix2{ {1},{1,1} };//学会用大括号初始化二维数组
matrix1.push_back({ 1,2,1 });//插入
初始化一个二维vector,行M,列不固定
vector<vector<int>>matrix(M);//M行,列数不固定
int col;
vector<int> temp;
for(int i=0;i<M;i++){
cout<<”please input the col of ”<<i<<” row”<<endl;
cin>>col;//确定第i行的列数
cout<<i<<” row has ”<<col<<” col”<<” please input these”<<endl;
for(int j=0;j<col;j++{
int data;
cin>>data;
temp.push_back(data);
}
matrix[i]=temp;
temp.clear();
}
初始化一个二维vector,行列都不固定
#include <iostream>
#include<vector>
using namespace std;
int main()
{
vector<vector<int>> matrix;//行,列数不固定
cout << "please input rows of matrix: " << endl;
int rows;
cin >> rows;
matrix.resize(rows);
int col;
vector<int> temp;
for (int i = 0; i < rows; i++) {
cout << "please input the cols of " << i << "th row" << endl;
cin >> col;//确定第i行的列数
cout << i << "th row has " << col << " cols," << "please input these" << endl;
for (int j = 0; j < col; j++){
int data;
cin >> data;
temp.push_back(data);
}
matrix[i] = temp;
temp.clear();
}
cout << "output matrix:" << endl;
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
cout << endl;
return 0;
}
标签:初始化,matrix,temp,int,二维,vector,data
From: https://blog.csdn.net/weixin_44269804/article/details/141094830