c++ container
来源:互联网 发布:淘宝为什么分数低 编辑:程序博客网 时间:2024/06/08 04:35
容器:特定对象的集合
顺序容器:单一元素的集合,根据位置存储和访问对象
三种顺序容器:
vector deque list
快速随机访问 双端队列 快速插入、删除
初始化
Container<T> c
Container<T> c(n)
Container<T> c(ita, itb)
Container<T> c(n, x) 要求顺序容器
Container<T> c(anoc)
元素必须支持赋值,可以复制
::iterator it
*it
it->mem
++ --
> >= < <=,= - += -= 只适用于vector, deque
添加元素
.push_back() okok
none ok ok
.insert(it, x) okok
.insert(it, ita, itb) okok
.insert(it, n, x) okok
大小
.size() ok ok
.max_size() okok
.empty() ok ok
.resize(n) ok ok
.resize(n, x) okok
访问
[i] ok none
.at(i) ok none
.front() ok ok
.back() ok ok
删除
.erase(it++) okok
.erase(ita, itb)ok ok
.pop_back() okok
.clear() ok ok
none .pop_front()ok
赋值
c = anoc
.asign(ita, itb)
.asign(n, x)
.swap(anoc)
每次容量自增长为当前容量的3/2
vector与deque存储空间连续,支持随机访问,vector末尾插删快捷,其他位置开销大,deque首尾插删快捷
list存储空间不连续,任意位置插删开销小
顺序容器适配器:stack, queue, priority_queue
容器适配器就是利用容器提供统一的接口,隐藏背后的容器细节
stack,可以建立在vector, deque, list上
.empty() .size().push() .pop().top()
queue,要求提供.push_front(),建立在list上
.empty() .size().push_back() .pop().front() .back()
.push_front()
priority_queue,要求随机访问,建立在vector, deque上
.empty() .size().push() .pop().top()
#include <map>
map自动对key进行排序
map<Tone, Ttwo> m;
.size()
.max_size()
.empty()
查找
attwo = m[atone] 1)有,返回 2)无,赋默认值 若value为对象,开销较大
map<Tone, Ttwo>::iterator it = m.find(atone) if (it == m.end()) ...none
插入
m[atone] = attwo 查询,1)有,更新 2)无,插入
.insert( map<Tone, Ttwo>::value_type(atone, attwo) ) -> pair<iterator, bool>
iterator insert(iterator pos, const value_type &x);
删除
.erase(it)
.erase(ita, itb)
.clear()
.erase(const Tone &)
m::value_type , key_type, mapped_type
pair(Tone, Ttwo) apair; apair.first; apair.second;
std::for_each(m.begin(), m.end(), print_pair) print_pair是函数指针
顺序容器:单一元素的集合,根据位置存储和访问对象
三种顺序容器:
vector deque list
快速随机访问 双端队列 快速插入、删除
初始化
Container<T> c
Container<T> c(n)
Container<T> c(ita, itb)
Container<T> c(n, x) 要求顺序容器
Container<T> c(anoc)
元素必须支持赋值,可以复制
::iterator it
*it
it->mem
++ --
> >= < <=,= - += -= 只适用于vector, deque
添加元素
.push_back() okok
none ok ok
.insert(it, x) okok
.insert(it, ita, itb) okok
.insert(it, n, x) okok
大小
.size() ok ok
.max_size() okok
.empty() ok ok
.resize(n) ok ok
.resize(n, x) okok
访问
[i] ok none
.at(i) ok none
.front() ok ok
.back() ok ok
删除
.erase(it++) okok
.erase(ita, itb)ok ok
.pop_back() okok
.clear() ok ok
none .pop_front()ok
赋值
c = anoc
.asign(ita, itb)
.asign(n, x)
.swap(anoc)
每次容量自增长为当前容量的3/2
vector与deque存储空间连续,支持随机访问,vector末尾插删快捷,其他位置开销大,deque首尾插删快捷
list存储空间不连续,任意位置插删开销小
顺序容器适配器:stack, queue, priority_queue
容器适配器就是利用容器提供统一的接口,隐藏背后的容器细节
stack,可以建立在vector, deque, list上
.empty() .size().push() .pop().top()
queue,要求提供.push_front(),建立在list上
.empty() .size().push_back() .pop().front() .back()
.push_front()
priority_queue,要求随机访问,建立在vector, deque上
.empty() .size().push() .pop().top()
#include <map>
map自动对key进行排序
map<Tone, Ttwo> m;
.size()
.max_size()
.empty()
查找
attwo = m[atone] 1)有,返回 2)无,赋默认值 若value为对象,开销较大
map<Tone, Ttwo>::iterator it = m.find(atone) if (it == m.end()) ...none
插入
m[atone] = attwo 查询,1)有,更新 2)无,插入
.insert( map<Tone, Ttwo>::value_type(atone, attwo) ) -> pair<iterator, bool>
iterator insert(iterator pos, const value_type &x);
删除
.erase(it)
.erase(ita, itb)
.clear()
.erase(const Tone &)
m::value_type , key_type, mapped_type
pair(Tone, Ttwo) apair; apair.first; apair.second;
std::for_each(m.begin(), m.end(), print_pair) print_pair是函数指针
0 0
- C++Container之vector用法
- Container
- Container
- Container
- Container
- Container
- [C++]LeetCode: 39 Container With Most Water
- [leetcode-11]container with most water(C)
- Leetcode c语言-Container With Most Water
- LeetCode 11 Container With Most Water (C,C++,Java,Python)
- 【12c】root container 和 pdb 的一些区别
- [LeetCode] 011. Container With Most Water (Medium) (C++/Java/Python)
- LeetCode 之 Container With Most Water — C 实现
- leetcode中的Container With Most Water(C语言)
- LeetCode刷题(C++)——Container With Most Water
- 【LeetCode算法练习(C++)】Container With Most Water
- LeetCode-11-Container With Most Water(C语言实现)
- Container move to Container
- Mat类详解(三)
- 常见锁的区别及适用场景
- Riak - 背景篇(2)
- Xamarin安装信息
- 你真的会用Fragment了么?-Fragment解析
- c++ container
- Howto - Install MT7610U on CentOS 6.6
- 类型的萃取
- Web安全测试之XSS
- NSAttributedString(富文本)用法
- jquery阻止事件冒泡
- Scrapy之Extension实例——计算吞吐量及时延
- linux下gcc/g++编译器的使用
- Cramfs、JFFS2、YAFFS2的全面对比