STL 标准模版库-容器篇

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

函数名 函数说明
push_back(k) 增加一个k到数组最后
insert(i,k) 插入ka[i]
insert(i,n,k) 插入nka[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

queue<int> q;
priority_queue<int> q;	//大根堆
priority_queue<int, vector<int>, gr
  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值