STL-学习笔记:关联容器
2012-07-06 17:06
274 查看
set:所有元素都会根据元素的键值自动被排序不能通过set的迭代器改变set的元素值。
map:所有元素都会根据元素的键值自动被排序,map的所有元素都是pair,同时拥有key 和 value.map 不允许两个元素拥有相同的键值。
注意:不能通过map的迭代器改变map的元素键值,因为键值涉及到map元素的排序规则,任意改变map元素键值将会严重破坏map组织,修改value则是可以的。
set、map 与 list相同的特性:当客户端对它进行元素新增操作(insert)或删除操作(erase)时,操作之前的所有迭代器,在操作完成之后都依然有效。被删除的元素的迭代器例外。
由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所有标准的STL set 、map就是以红黑树为底层机制。又由于set所开放的各种操作接口,红黑树也都提供了,所以几乎所有的set操作行为,都只是调用了红黑树的操作行为而已。
multiset: 特性及用法于set完全相同,唯一的差别在于它允许键值重复。
multimap:允许键值重复
map:所有元素都会根据元素的键值自动被排序,map的所有元素都是pair,同时拥有key 和 value.map 不允许两个元素拥有相同的键值。
注意:不能通过map的迭代器改变map的元素键值,因为键值涉及到map元素的排序规则,任意改变map元素键值将会严重破坏map组织,修改value则是可以的。
set、map 与 list相同的特性:当客户端对它进行元素新增操作(insert)或删除操作(erase)时,操作之前的所有迭代器,在操作完成之后都依然有效。被删除的元素的迭代器例外。
由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所有标准的STL set 、map就是以红黑树为底层机制。又由于set所开放的各种操作接口,红黑树也都提供了,所以几乎所有的set操作行为,都只是调用了红黑树的操作行为而已。
multiset: 特性及用法于set完全相同,唯一的差别在于它允许键值重复。
multimap:允许键值重复
相关文章推荐
- C++ Primer 学习笔记_34_STL实践与分析(8) --引言、pair类型、关联容器
- stl之关联容器学习笔记1
- stl之关联容器学习笔记2
- C++ STL关联容器 set和map学习笔记
- C++ Primer 学习笔记_34_STL实践与分析(8) --引言、pair类型、关联容器
- C++学习笔记-关联容器
- STL学习笔记— —特殊容器priority_queue
- STL学习笔记之容器--vector(一)
- C++学习笔记十-关联容器
- STL学习笔记8— —容器map和multimap
- STL学习笔记——序列式容器list
- STL 基本容器学习笔记
- STL学习笔记— —容器的选用
- STL学习笔记— —特殊容器queue
- C++ Primer学习笔记:STL顺序容器
- c++学习笔记之关联容器
- STL学习笔记--特殊容器
- STL学习笔记——序列式容器
- STL学习笔记之 (五)容器 vector deque list 使用条件
- C++ 中STL学习-50条有效使用经验学习笔记(一):容器