set的有序与无序

一、set的定义

set是C++ STL中的容器之一,用于存储不重复的元素,通常用于快速查找和去重。

二、set的基本特性

set容器中的元素是按照从小到大的顺序排列,并且不允许有重复的元素。但是,set并不是完全有序的容器,因为元素的插入和删除会影响元素在容器中的位置。

代码示例:

#include 
#include 
using namespace std;

int main() {
    set myset;
    myset.insert(1);
    myset.insert(3);
    myset.insert(5);
    myset.insert(2);
    myset.insert(4);

    for(auto it=myset.begin(); it!=myset.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}
// Output: 1 2 3 4 5

三、有序set(set)

set的默认排序方式是从小到大,也就是说它是有序的。如果我们想要更改排序方式,可以自定义比较函数。

代码示例:

#include 
#include 
using namespace std;

bool cmp(int a, int b) {
    return a > b;
}

int main() {
    set myset(cmp);
    myset.insert(1);
    myset.insert(3);
    myset.insert(5);
    myset.insert(2);
    myset.insert(4);

    for(auto it=myset.begin(); it!=myset.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}
// Output: 5 4 3 2 1

四、无序set(unordered_set)

无序set是C++11新增的容器,它的元素是无序的。虽然插入和删除操作比有序set快,但是查找操作的时间复杂度较高。

代码示例:

#include 
#include 
using namespace std;

int main() {
    unordered_set myset;
    myset.insert(1);
    myset.insert(3);
    myset.insert(5);
    myset.insert(2);
    myset.insert(4);

    for(auto it=myset.begin(); it!=myset.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}
// Output: 5 1 2 3 4

五、小结

set是C++ STL中常用的容器之一,有序set的元素是按照从小到大的顺序排列,而无序set的元素是无序的。在选择set容器时,需要根据具体的需求进行选择。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/192071.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-11-30 15:14
下一篇 2024-11-30 15:14

相关推荐

  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • Python Set元素用法介绍

    Set是Python编程语言中拥有一系列独特属性及特点的数据类型之一。它可以存储无序且唯一的数据元素,这使得Set在数据处理中非常有用。Set能够进行交、并、差集等操作,也可以用于…

    编程 2025-04-29
  • Python set去重保留原顺序

    当一个列表中出现重复的元素时,为了去除这些重复元素可以使用Python提供的集合(set)数据结构,集合可以去除元素的重复出现。然而,这样会导致原有的元素顺序混乱,这时,需要使用一…

    编程 2025-04-27
  • Java 数组转 Set

    一、Set 和数组的概念 在 Java 中,Set 是一种不允许重复元素的 Collection 集合。和 List 不同,Set 不保证元素的顺序。而数组是一种特殊的数据结构,它…

    编程 2025-04-25
  • Python中的set.count

    一、概述 在Python中,set是一种无序、可变的集合类型。set.count方法用于统计set中某个元素出现的次数。它接受一个参数,即要统计出现次数的元素。如果参数元素不在se…

    编程 2025-04-25
  • Set up Unit Tests

    一、单元测试简介 单元测试是一种软件测试方法,它将软件系统分解成小的、独立的单元,对每个单元进行测试并验证其是否符合设计文档中描述的期望行为。单元测试可以检测代码的正确性、可读性和…

    编程 2025-04-13
  • bcdedit /set详解

    一、基本概念 bcdedit是一个命令行工具,用于对Windows系统启动器(boot loader)进行配置。它可以添加、删除、编辑和重新配置Windows启动选项,比如用于Wi…

    编程 2025-04-12
  • C++ set insert详解

    一、概述 C++中的set容器是一种基于红黑树(Red-Black Tree)的高效实现,它会自动进行排序。在set中我们可以使用insert方法向set中插入元素。set ins…

    编程 2025-04-02
  • Java集合Set遍历详解

    Java集合框架中的Set接口是一个无序的、不允许重复元素的集合。Set中的元素没有具体的位置,可以添加、删除或者查找集合中的元素。Set接口的实现类有HashSet、TreeSe…

    编程 2025-02-15
  • Java遍历Set集合详解

    一、Set集合简介 Set是Java集合框架下的一个集合接口,用于存储不可重复的元素,即每个元素都是唯一的。Set常用的实现类有HashSet、LinkedHashSet和Tree…

    编程 2025-02-11

发表回复

登录后才能评论