STL set

前言

set应为是基于红黑树的平衡二叉树的数据结构实现,其中所包含的元素的值是唯一的,所以主要用于去重和排序。

使用

set

遍历速度 插入删除速度 随机访问速度 备注
Set 比list多占一个指针的存储空间
函数 描述
insert(元素) 插入一个元素。
erase(元素) 删除一个元素。
find(元素) 查找一个元素。
size() 返回容器中元素的数量。
empty() 检查容器是否为空。
begin() 返回首位元素位置。
end() 返回尾元素。
#include <bits/stdc++.h>
using namespace std;
int main()
{
     set<int> se;
     se.insert(10);
     se.insert(12);
     se.insert(10);
     se.insert(19);
     se.insert(13);
     se.insert(10);
     se.insert(5);
     se.insert(1000);
     se.insert(14);
     se.insert(11);
     se.insert(10);
     for (auto it = se.begin(); it != se.end(); ++it)
     {
          cout << *it << " ";
     }
     return 0;
}
/*输出: 5 10 11 12 13 14 19 1000 */

可以看到set 按升序排序

#include <bits/stdc++.h>
using namespace std;
bool MyCompareFunc(int v1, int v2)
{
     return v1 > v2; // 降序排序
}
int main()
{
     set<int, bool (*)(int, int)> se(MyCompareFunc); // 使用函数指针指定排序规则
     se.insert(10);
     se.insert(12);
     se.insert(10);
     se.insert(19);
     se.insert(13);
     se.insert(10);
     se.insert(5);
     se.insert(1000);
     se.insert(14);
     se.insert(11);
     se.insert(10);
     for (auto it = se.begin(); it != se.end(); ++it)
     {
          cout << *it << " ";
     }
     return 0;
}
/*输出: 1000 19 14 13 12 11 10 5  */
posted @ 2024-11-21 22:13  流氓兔LMT  阅读(2)  评论(0编辑  收藏  举报