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/zh-tw/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

發表回復

登錄後才能評論