C++二维vector初始化

初始化一个 二维vector,行M,列N(行列数确定且含有初始值):

// 初始化一个 二维的matrix, 行M,列N,且值为0
vector> matrix(M,vector(N));
//等价于下面的
vector > matrix(M); 
for(int i=0;i > matrix;
matrix.resize(M);//M行
for(int i=0;i> matrix(M,vector(N,data));

初始化一个 二维vector,行M,列不固定:

vector>matrix(M);//M行,列数不固定

int col;
vector temp;
for(int i=0;i>col;//确定第i行的列数
    cout<>data;
        temp.push_back(data);
    }
    matrix[i]=temp;
    temp.clear();
}

初始化一个二维vector,行列都不固定:

#include 
#include
using namespace std;
int main()
{
    vector> matrix;//行,列数不固定
    cout << "please input rows of matrix: " << endl;
    int rows;
    cin >> rows;
    matrix.resize(rows);
    int col;
    vector 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;
}

用大括号初始化二维数组

//初始化空的二维vector
vector> matrix1{};
或者
vector> matrix1{{}};

//初始化列表
vector> matrix2{ {1},{1,1} };//学会用大括号初始化二维数组
matrix1.push_back({ 1,2,1 });//插入

你可能感兴趣的:(c++,c++,蓝桥杯,算法)