c++中unordered_set的用法是什么

c++
小億
149
2024-01-31 10:43:40
欄目: 編程語言

unordered_set是C++標(biāo)準(zhǔn)庫中的一種無序集合容器,用于存儲(chǔ)唯一的元素。它基于哈希表的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),提供了快速的元素查找、插入和刪除操作。

unordered_set的用法如下:

  1. 包含頭文件:需要包含<unordered_set>頭文件。

  2. 定義容器:使用std::unordered_set模板定義unordered_set對(duì)象,可以指定元素類型和哈希函數(shù)。

#include <unordered_set>

std::unordered_set<int> mySet; // 定義一個(gè)存儲(chǔ)int類型元素的unordered_set
  1. 插入元素:使用insert函數(shù)插入元素。
mySet.insert(10); // 插入元素10
mySet.insert(20); // 插入元素20
  1. 刪除元素:使用erase函數(shù)刪除元素。
mySet.erase(10); // 刪除元素10
  1. 查找元素:使用find函數(shù)查找元素,返回一個(gè)指向元素的迭代器。如果元素存在,迭代器指向該元素;否則,迭代器指向unordered_set的end位置。
std::unordered_set<int>::iterator it = mySet.find(20);
if (it != mySet.end()) {
    // 元素存在
} else {
    // 元素不存在
}
  1. 遍歷元素:使用迭代器遍歷unordered_set中的所有元素。
for (std::unordered_set<int>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
    // 處理*it
}

unordered_set還提供了其他一些常用的成員函數(shù),例如:empty用于檢查unordered_set是否為空,size返回unordered_set中元素的個(gè)數(shù),clear清空unordered_set中的所有元素等。

需要注意的是,unordered_set中的元素是無序的,插入和查找操作的平均時(shí)間復(fù)雜度為常數(shù)O(1),但最壞情況下可能達(dá)到線性O(shè)(n)。

0