C++中的容器类

一、容器分类

1、容器分类

顺序存储结构(vector、list、deque)、关联存储结构(set、map、mutiset、multimap)两类容器。

标准容器类说明用法
顺序容器类
vector 从后面快速的插入与删除,直接访问任何元素相当于一个数组,在内存中分配一块连续的内存空间进行存储。支持不指定 vector 大小的存储
deque 从前面或后面快速的插入与删除,直接访问任何元素双端队列
list 双链表,从任何地方快速插入与删除双向链表,每一个结点都包括一个信息快 Info、一个前驱指针 Pre、一个后驱指针 Post
  1. 使用区别如果你需要高效的随即存取,而不在乎插入和删除的效率,使用 vector
  2. 如果你需要大量的插入和删除,而不关心随机存取,则应使用 list
  3. 如果你需要随机存取,而且关心两端数据的插入和删除,则应使用 deque
标准容器类说明
关联容器类
set 快速查找,不允许重复值
multiset 快速查找,允许重复值
map 一对多映射,基于关键字快速查找,不允许重复值
multimap 一对多映射,基于关键字快速查找,允许重复值
容器设配器 (基于基本容器实现的基本容器一样的东西就是适配器) 说明
stack 后进先出
queue 先进先出
priority_queue 最高优先级元素第一个出列

二、容器常见操作

1、顺序容器和关联容器公共函数
函数功能
begin 该函数两个版本返回 iterator 或 const_iterator,引用容器第一个元素
end 该函数两个版本返回 iterator 或 const_iterator, 引用容器最后一个元素后面一位
rbegin 该函数两个版本返回 reverse_iterator 或 const_reverse_iterator, 引用容器最后一个元素
rend 该函数两个版本返回 reverse_iterator 或 const_reverse_iterator,引用容器第一个元素面一位
erase 从容器中清除一个或几个元素
clear 清除容器中所有元素
2、vector基本操作
操作说明解释
头文件#include<vector>
初始化vector<~> vec~值可以是 int,double,string, 还可以是结构体,结构体要定义成全局
尾部插入数字vec.push_back(a)
下标访问vec[i]访问第i个元素
插入元素vec.insert(vec.begin()+i,a)在第 i+1 个元素前面插入 a
删除元素vec.erase(vec.begin()+2)删除第 3 个元素
向量大小vec.size()
清空vec.clear()
排序引入#include<algorithm>sort(vec.begin(),vec.end());(默认是按升序排列, 即从小到大)
翻转引入#include<algorithm>reverse(vec.begin(),vec.end()); 将元素翻转

相关链接:http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html

3、list 的基本操作
操作说明解释
头文件#include<list>
初始化list<int> list
list::push_front() 在 list 的前端插入一个元素
list::pop_front() 删除 list 的第一个元素
list::push_back() 在 list 的末端插入一个元素
list::pop_back() 删除 list 的最后一个元素
list::insert() 在指定位置插入一个或多个元素。对于插入大量元素来说是非常高效的

相关链接:http://blog.youkuaiyun.com/zhangliang_571/article/details/26143631

4、dequeu 的基本操作
操作说明解释
头文件#include<deque>
初始化deque<int> d
删除双端队列中最前一个元素void pop_front()
删除双端队列中最后一个元素void pop_back()
返回 pos 位置元素的引用reference at(int pos)
返回首元素的引用reference front()
返回尾元素的引用reference back()
返回向量头指针,指向第一个元素iterator begin()
返回指向向量中最后一个元素下一个元素的指针(不包含在向量中)iterator end()

相关链接:http://blog.youkuaiyun.com/longshengguoji/article/details/8519812

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值