vector常用操作
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
//初始化空的二维vector,到底是{}还是{{}},请看最下面的两个leetcode例题
vector<vector<int>> matrix1{};
或者
vector<vector<int>> matrix1{{}};
//初始化列表
vector<vector<int>> matrix2{ {1},{1,1} };//学会用大括号初始化二维数组
matrix1.push_back({ 1,2,1 });//插入
二维数组求大小
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
//创建4*5二维数组,并将数组元素的值都设为1
vector<vector<int>> dp(4, vector<int>(5, 1));
int m = dp.size();//行数
int n = dp[0].size();//列数
cout << "m = " << m << endl;
cout << "n = " << n << endl;
return 0;
}
二维数组排序
sort()函数默认对第一列进行排序,升序
若需按照第二列进行排序,则需重写cmp函数
static bool cmp(const vector<int>& a,const vector<int>& b){
return a[1]<b.[1];
}
sort(points.begin(),points.end(),cmp);
后边用到陆续补充