STL(十一)set集合容器

xiaoxiao2021-02-28  102

        set集合容器使用一种称为红黑树的平衡二叉检索树的数据结构,来组织泛化的元素数据,每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦然。

        元素数据的检索,使用的是二叉检索树的中序遍历算法,检索的效率高于vector、deque和list等容器。由于采用中序遍历算法可将二叉检索树的键值,由小到大排列遍历出来,因此set集合容器蕴含于元素间的有序性。

一、set技术原理

红黑树是一种特殊的二叉检索树,不仅set容器应用红黑树,其他容器如multiset、map和multimap也应用红黑树进行元素的链接。

二、set应用基础

#include <set>

1、元素的插入

2、元素的删除

3、元素的遍历访问

4、元素的反向遍历

5、元素的搜索

#include <set> #include <iostream> int main(void) { using namespace std; set<int> s; s.insert(10); s.insert(15); s.insert(11); s.insert(17); s.insert(13); s.insert(19); // int v = 13; set<int>::iterator i_v = s.find(v); cout << *i_v << endl; // v = 60; i_v = s.find(v); if (i_v != s.end() ) cout << *i_v << endl; return 0; }

6、其他的常用函数

转载请注明原文地址: https://www.6miu.com/read-63540.html

最新回复(0)