【STL】vector数组(一维二维三维)初始化方法
学习资料
1.【C++】详解vector二维数组的全部操作
一维
vector<int> res(n, 0);//大小为n的数组,初始值全部设为0
Leetcode中常用,在类内定义外部变量,在函数内初始化
class Solution {
public:
vector<vector<string>> res;
vector<string> path;
vector<bool> col, dg, udg;
int n;
vector<vector<string>> solveNQueens(int _n) {
n = _n;
col = vector<bool>(n);
dg = udg = vector<bool>(n * 2);
path = vector<string>(n, string(n, '.'));//初始化为'.'
}
};
二维
初始化一个r * c的矩阵,所有值为0
vector<vector<int>> newOne(r, vector<int>(c, 0));
同理,初始化n * m的矩阵
vector<vector<int>> one(n, vector<int>(m));
三维
一般动态规划可能会用到
int x = 2, y = 3, z = 4;
vector<vector<vector<int>>> vec3d(x, vector<vector<int>>(y, vector<int>(z, 0)));
二维数组按第二维排序
写法一:
vector<vector<int>> courses;
sort(courses.begin(), courses.end(), [](vector<int> &a, vector<int> &b) {
return a[1] < b[1];
});
写法二:
bool cmp1(const vector<int> &a, const vector<int> &b)
{
return a[1] < b[1];
}
sort(courses.begin(), courses.end(), cmp1);

浙公网安备 33010602011771号