vector
动态数组
vector是变长数组,向量,动态数组,支持随机访问,不支持在任意位置 O(1) 插入。为了保证效率,元素的增删一般应该在末尾进行。
vector<int> a;
vector<int> v[5];
vector<int> v = {
1, 2};
int a[] = {
1, 2, 3, 4, 5};
vector<int> v(a,a+5);
vector<int> v;
vector<int>::iterator it;
for(it = v.begin(); it != v.end(); it++) cout << *it << " ";
for(auto k : v) cout << k << " ";
操作 |
效果 |
begin() |
返回一个迭代器, 指向第一个元素 |
end() |
返回一个迭代器, 指向最后一个元素之后 |
![img](https://img-blog.csdnimg.cn/img_convert/7a2184f7714457c27235175c5a70d835.png)
函数名 |
函数说明 |
push_back(k) |
增加一个k 到数组最后 |
insert(i,k) |
插入k 到a[i] 处 |
insert(i,n,k) |
插入n 个k 到a[i] 处 |
erase(i) |
删除第i 个元素 |
erase(first,last) |
删除[first, last)中的元素 |
pop_back() |
删除最后一个元素 |
clear() |
清除所有元素 |
front() |
取向量第一个元素 |
back() |
取向量最后一个元素 |
begin() |
返回向量头指针 (迭代器), 指向第一个元素 |
end() |
返回向量尾指针, 指向向量最后一个元素的下一个位置 |
rbegin() |
反向迭代器, 指向最后一个元素 |
rend() |
反向迭代器, 指向第一个元素之前的位置 |
size() |
返回向量中实际元素的个数。 |
resize(size) |
重新设定向量的大小(可以保存元素的个数)。 |
max_size() |
得到 vector 最大可以是多大。 |
queue
队列
- 队列是先进先出
- 队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行
- queue可以用**
list
(链表)和deque
(双向队列)**实现,默认情况下用deque
实现
![img](https://img-blog.csdnimg.cn/img_convert/760b92c84a695f547e0ff929ef3047d4.png)
queue<int> q;
priority_queue<int> q;
priority_queue<int, vector<int>, gr