创建
vector<int> vec;
:声明一个空的整数类型的vector
。vector<int> vec(n);
:声明一个包含 n 个元素的整数类型的vector
,每个元素初始化为 0。vector<int> vec(n, val);
:声明一个包含 n 个元素的整数类型的vector
,每个元素初始化为 val。vector<int> vec = {1, 2, 3, 4, 5};
:声明并初始化一个整数类型的vector
,包含指定的元素。
访问
vec[i]
:访问索引为 i 的元素。vec.at(i)
:访问索引为 i 的元素,并进行边界检查。vec.front()
:访问第一个元素。vec.back()
:访问最后一个元素
常用方法
vec.push_back(val)
:在末尾插入元素 val。vec.pop_back()
:删除末尾元素。vec.insert(vec.begin() + pos, val)
:在指定位置 pos 插入元素 val。vec.erase(vec.begin() + pos)
:删除指定位置 pos 的元素。vec.clear()
:删除所有元素。vec.size()
:返回vector
中的元素个数。vec.empty()
:检查vector
是否为空。vec.resize(new_size)
:重新设置vector
的大小为 new_size。vec.reserve(new_capacity)
:预留空间,以减少多次增加大小时的重新分配的次数。vec.swap(other_vec)
:交换两个vector
的内容。vec.assign(other_vec.begin(), other_vec.end())
:用另一个vector
赋值。
算法题示例
代码模拟:
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int t = 0,b = n-1,l=0,r=n-1;
int nums = 1;
vector<vector<int>> res(n,vector<int>(n,0));
while(nums<=n*n){
for(int j = l;j<=r;j++) res[t][j]=nums++;
t++;
for(int j = t;j<=b;j++) res[j][r] = nums++;
r--;
for(int j = r;j>=l;j--) res[b][j] = nums++;
b--;
for(int j = b;j>=t;j--) res[j][l] = nums++;
l++;
}
return res;
}
};