21xrx.com
2024-11-22 08:02:39 Friday
登录
文章检索 我的文章 写文章
C++中的有序集合实现
2023-06-24 21:11:58 深夜i     --     --
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++中的有序集合是一个非常有用的数据结构,它可以快速地实现查找、插入和删除操作,并且能自动地对元素进行排序,提高程序的运行效率。因此,在需要存储大量元素的时候,可以优先选择使用有序集合来进行处理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复