这一节,我们将学习STL关联式容器集合——set。
1、set的特性
所有元素都会根据元素的键值自动排列,set的键值就是实值,并且set不允许两个元素相同的键值。
2、我们可以通过set的迭代器改变set的元素值吗?
答案是不行,因为set的元素值就是键值,因此这关系到排列规则,如果我们擅自修改元素值,会破坏set内部的排列规则。也正因为这样,STL的set的迭代器是const_iterator。
3、STL集合的底层结构是红黑树。因此掌握了红黑树的基本操作,那么学习集合set将会很容易,几乎set的所有操作都是转调用红黑树的操作而已。
需要说明的一点是:面对关联式容器,应该使用它们提供的find的函数来搜寻元素,这样会比STL算法find函数效率更高,因为STL算法的find函数是循序搜索。