21xrx.com
2025-03-21 21:52:41 Friday
文章检索 我的文章 写文章
C++中的有序集合实现
2023-06-24 21:11:58 深夜i     21     0
C++ STL set 有序性

在C++中,有序集合是一种非常重要的数据结构,用于存储元素,这些元素自动按照一定的排序规则进行排序,因此提高了查找插入等操作的效率。本文将介绍C++中如何使用有序集合实现这些功能。

一、STL中的有序集合

在STL中,有序集合是通过set类实现的,它是一个模板类,可以存储任意类型的元素,并根据元素的比较器进行排序。set类通常被实现为红黑树或平衡二叉树,因此它的查找、插入、删除等操作都是O(logN)级别的。

二、使用有序集合实现查找

在使用有序集合实现查找时,只需要使用set类中的find函数,通过输入要查找的值,即可在有序集合中查找到对应的元素。如果查找到了,find函数会返回该元素的迭代器,否则会返回end()迭代器。如下代码:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> s 9;
  auto it = s.find(4);
  if(it != s.end())
    cout << "找到了:" << *it << endl;
  else
    cout << "没找到!" << endl;
  return 0;
}

三、使用有序集合实现插入

在使用有序集合实现插入时,只需要使用set类中的insert函数,通过输入要插入的值,即可向有序集合中添加一个新元素,同时保持有序集合的有序性。如下代码:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> s 9;
  s.insert(6);
  for(auto& x : s)
    cout << x << " ";
  return 0;
}

输出结果为:

1 3 4 5 6 7 9

四、使用有序集合实现删除

在使用有序集合实现删除时,只需要使用set类中的erase函数,通过输入要删除的值或迭代器,即可从有序集合中删除对应的元素,同时保持有序集合的有序性。如下代码:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> s 1;
  s.erase(3);
  for(auto& x : s)
    cout << x << " ";
  return 0;
}

输出结果为:

1 4 5 7 9

总之,C++中的有序集合是一个非常有用的数据结构,它可以快速地实现查找、插入和删除操作,并且能自动地对元素进行排序,提高程序的运行效率。因此,在需要存储大量元素的时候,可以优先选择使用有序集合来进行处理。

  
  

评论区