一、set
set语法使用参阅:
set的特性
set所有元素都会根据元素的键值自动被排序
set中的键值就是实值,实值就是键值
默认情况下set不允许两个元素重复
set的迭代器
不能根据set的迭代器改变set元素的值。因为其键值就是实值,实值就是键值,如果改变set元素值,会严重破坏set组织
在后面的源码中会看到,set的迭代器set<T>::iterator被定义为底层RB-tree的const_iterator。因此set的迭代器是一种constant iterators
set拥有与list的相同的某些性质
当客户端对它进行元素新增(insert)操作或删除(erase)操作时,操作之前的所有迭代器在操作完成之后依然有效(当然,被删除的那个元素的迭代器无效)
相关算法
STL提供了一组set/multiset相关算法,包括交集(set_interp)、联集(set_union)、差集(set_difference)、对称差集(set_symmetric_difference)
详情会在后面