unordered_set是C++標準庫中的一種無序集合容器,用于存儲唯一的元素。它基于哈希表的數據結構實現,提供了快速的元素查找、插入和刪除操作。
unordered_set的用法如下:
包含頭文件:需要包含<unordered_set>
頭文件。
定義容器:使用std::unordered_set
模板定義unordered_set對象,可以指定元素類型和哈希函數。
#include <unordered_set>
std::unordered_set<int> mySet; // 定義一個存儲int類型元素的unordered_set
insert
函數插入元素。mySet.insert(10); // 插入元素10
mySet.insert(20); // 插入元素20
erase
函數刪除元素。mySet.erase(10); // 刪除元素10
find
函數查找元素,返回一個指向元素的迭代器。如果元素存在,迭代器指向該元素;否則,迭代器指向unordered_set的end位置。std::unordered_set<int>::iterator it = mySet.find(20);
if (it != mySet.end()) {
// 元素存在
} else {
// 元素不存在
}
for (std::unordered_set<int>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
// 處理*it
}
unordered_set還提供了其他一些常用的成員函數,例如:empty
用于檢查unordered_set是否為空,size
返回unordered_set中元素的個數,clear
清空unordered_set中的所有元素等。
需要注意的是,unordered_set中的元素是無序的,插入和查找操作的平均時間復雜度為常數O(1),但最壞情況下可能達到線性O(n)。