STL容器能力一览表和各个容器操作函数异常保证
来源:互联网 发布:java gson解析json 编辑:程序博客网 时间:2024/05/16 03:45
STL容器能力一览表
Vector
Deque
List
Set
Multiset
map
Multimap
典型内部
结构
dynamic
array
Array of arrays
Doubly
Linked list
Binary tree
Binary tree
Binary tree
Binary tree
元素
Value
Value
Value
Value
Value
Key/value
pair
Key/value
pair
元素
可重复
是
是
是
否
是
对key而言否
是
可随机
存取
是
是
否
否
否
对key而言是
否
迭代器
类型
随机存取
随机存取
双向
双向元素被视为常数
双向元素被视为常数
双向key被视为常数
双向key被视为常数
元素搜寻
速度
慢
慢
非常慢
快
快
对key而言快
对key而言快
快速
安插移除
尾端
头尾两端
任何位置
---
---
---
---
安插移除
导致无效iterators,pointers,
references
重新分配时
总是如此
绝不会
绝不会
绝不会
绝不会
绝不会
释放被移
除元素之
内存
绝不会
有时会
总是如此
总是如此
总是如此
总是如此
总是如此
允许
保留内存
是
否
---
---
---
---
---
交易安全
若失败带
来任何影响
尾端push/pop时
头尾两端push/pop时
任何时候除了排序和赋值
任何时候除了多元素安插
任何时候除了多元素安插
任何时候除了多元素安插
任何时候除了多元素安插
各个容器操作函数异常保证
操作
页码
保证
Vector::push_back()
241
要么成功,要么无任何影响
Vector::insert()
240
要么成功,要么无任何影响------前提是元素的复制/赋值操作不抛出异常
Vector::pop_back()
243
不抛出异常
Vector::erase()
242
不抛出异常------前提是元素的复制/赋值操作不抛出异常
Vector::clear()
244
不抛出异常------前提是元素的复制/赋值操作不抛出异常
Vector::swap()
237
不抛出异常
Deque::push_back()
241
要么成功,要么无任何影响
Deque::push_front()
241
要么成功,要么无任何影响
Deque::insert()
240
要么成功,要么无任何影响------前提是元素的复制/赋值操作不抛出异常
Deque::pop_back()
243
不抛出异常
Deque::pop_front()
243
不抛出异常
Deque::erase()
242
不抛出异常------前提是元素的复制/赋值操作不抛出异常
Deque::clear()
244
不抛出异常------前提是元素的复制/赋值操作不抛出异常
Deque::swap()
237
不抛出异常
List::push_back()
241
要么成功,要么无任何影响
List::push_front()
241
要么成功,要么无任何影响
List::insert()
240
要么成功,要么无任何影响
List::pop_back()
243
不抛出异常
List::pop_front()
243
不抛出异常
List::erase()
242
不抛出异常
List::clear()
244
不抛出异常
List::remove()
242
不抛出异常-------前提是元素的比较操作不抛出异常
List::remove_if()
242
不抛出异常-------前提是判断是predicate不抛出异常
List::unique()
244
不抛出异常-------前提是元素的比较操作不抛出异常
List::splice()
245
不抛出异常
List::merge()
246
要么成功,要么无任何影响-------前提是元素的比较操作不抛出异常
List::reverse()
246
不抛出异常
List::swap()
237
不抛出异常
[multi]set::insert()
240
要么成功,要么无任何影响-------对单个元素而言
[multi]set::erase()
242
不抛出异常
[multi]set::clear()
244
不抛出异常
[multi]set::swap()
237
不抛出异常-------前提是对“比较准则”执行复制/赋值操作时不抛出异常
[multi]map::insert()
240
要么成功,要么无任何影响-------对单个元素而言
[multi]map::erase()
242
不抛出异常
[multi]map::clear()
244
不抛出异常
[multi]map::swap()
237
不抛出异常-------前提是对“比较准则”执行复制/赋值操作时不抛出异常
- STL容器能力一览表和各个容器操作函数异常保证
- STL容器的共通能力和共通操作
- STL各个容器支持的函数
- STL(6)-容器的共通能力,各个容器的使用时机,常见算法用法介绍
- 容器的共通能力和共通操作_STL容器_STL
- 【C++ STL学习之一】容器的共通能力和共通操作总结
- C++ STL学习之一:容器的共通能力和共通操作总结
- c++标准库——STL容器的通用能力和操作
- 【C++ STL学习之一】容器的共通能力和共通操作总结
- 【C++ STL学习之一】容器的共通能力和共通操作总结
- 【C++ STL学习之一】容器的共通能力和共通操作总结
- STL与泛型编程<一>:容器的共通能力和共通操作
- STL各个容器性能比较
- STL容器类异常
- STL 容器 操作
- STL容器删除操作
- STL容器操作总结
- STL容器操作总结
- 29 求转置矩阵问题
- 工单状态BUG
- centos 6.5 安装配置LAMP(linux,apache,mysql,php)环境
- 数据结构之并查集
- UVALive6662 The Last Ant
- STL容器能力一览表和各个容器操作函数异常保证
- HDU 2896 病毒侵袭 && HDU 3065 病毒侵袭持续中
- 31 5个数求最值
- Starting Jetty in Debug Mode With Gradle
- Android应用中平滑的手写效果实现
- 二叉索引树(树状数组)
- 判断ADB调试模式是否打开源代码
- IOS 自动(手动)转屏
- vb.net & 文本框为空提示,一键清空文本框所有内容