
- C 標準庫
- C 標準庫
- C++ 標準庫
- C++ 庫 - 首頁
- C++ 庫 - <fstream>
- C++ 庫 - <iomanip>
- C++ 庫 - <ios>
- C++ 庫 - <iosfwd>
- C++ 庫 - <iostream>
- C++ 庫 - <istream>
- C++ 庫 - <ostream>
- C++ 庫 - <sstream>
- C++ 庫 - <streambuf>
- C++ 庫 - <atomic>
- C++ 庫 - <complex>
- C++ 庫 - <exception>
- C++ 庫 - <functional>
- C++ 庫 - <limits>
- C++ 庫 - <locale>
- C++ 庫 - <memory>
- C++ 庫 - <new>
- C++ 庫 - <numeric>
- C++ 庫 - <regex>
- C++ 庫 - <stdexcept>
- C++ 庫 - <string>
- C++ 庫 - <thread>
- C++ 庫 - <tuple>
- C++ 庫 - <typeinfo>
- C++ 庫 - <utility>
- C++ 庫 - <valarray>
- C++ STL 庫
- C++ 庫 - <array>
- C++ 庫 - <bitset>
- C++ 庫 - <deque>
- C++ 庫 - <forward_list>
- C++ 庫 - <list>
- C++ 庫 - <map>
- C++ 庫 - <multimap>
- C++ 庫 - <queue>
- C++ 庫 - <priority_queue>
- C++ 庫 - <set>
- C++ 庫 - <stack>
- C++ 庫 - <unordered_map>
- C++ 庫 - <unordered_set>
- C++ 庫 - <vector>
- C++ 庫 - <algorithm>
- C++ 庫 - <iterator>
- C++ 高階庫
- C++ 庫 - <any>
- C++ 庫 - <barrier>
- C++ 庫 - <bit>
- C++ 庫 - <chrono>
- C++ 庫 - <cinttypes>
- C++ 庫 - <clocale>
- C++ 庫 - <condition_variable>
- C++ 庫 - <coroutine>
- C++ 庫 - <cstdlib>
- C++ 庫 - <cstring>
- C++ 庫 - <cuchar>
- C++ 庫 - <charconv>
- C++ 庫 - <cfenv>
- C++ 庫 - <cmath>
- C++ 庫 - <ccomplex>
- C++ 庫 - <expected>
- C++ 庫 - <format>
- C++ 庫 - <future>
- C++ 庫 - <flat_set>
- C++ 庫 - <flat_map>
- C++ 庫 - <filesystem>
- C++ 庫 - <generator>
- C++ 庫 - <initializer_list>
- C++ 庫 - <latch>
- C++ 庫 - <memory_resource>
- C++ 庫 - <mutex>
- C++ 庫 - <mdspan>
- C++ 庫 - <optional>
- C++ 庫 - <print>
- C++ 庫 - <ratio>
- C++ 庫 - <scoped_allocator>
- C++ 庫 - <semaphore>
- C++ 庫 - <source_location>
- C++ 庫 - <span>
- C++ 庫 - <spanstream>
- C++ 庫 - <stacktrace>
- C++ 庫 - <stop_token>
- C++ 庫 - <syncstream>
- C++ 庫 - <system_error>
- C++ 庫 - <string_view>
- C++ 庫 - <stdatomic>
- C++ 庫 - <variant>
- C++ STL 庫速查表
- C++ STL - 速查表
- C++ 程式設計資源
- C++ 程式設計教程
- C++ 有用資源
- C++ 討論
C++ 庫 - <set>
介紹
集合 (set) 是一種關聯容器,它包含一組已排序的、唯一的 Key 型別物件。每個元素只能出現一次,因此不允許重複。
有四種關聯容器:集合 (set)、多重集合 (multiset)、對映 (map) 和多重對映 (multimap)。
集合中元素的值一旦放入容器後就不能修改,即元素始終為常量。但是它們可以從容器中插入或刪除。
集合容器在透過鍵訪問單個元素方面通常比無序集合 (unordered_set) 容器慢,但它們允許基於其順序直接迭代子集。
定義
以下是來自 <set> 標頭檔案的 std::set 的定義
template < class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> > class set;
引數
Key - 包含的元素型別。
Key 可以被任何其他資料型別替換,包括使用者定義型別。
成員型別
以下成員型別可以用作成員函式的引數或返回型別。
序號 | 成員型別 | 定義 |
---|---|---|
1 | key_type | Key |
2 | value_type | Key |
3 | reference | Allocator::reference value_type& |
4 | const_reference | Allocator::const_reference const value_type& |
5 | pointer | Allocator::pointer std::allocator_traits<Allocator>::pointer |
6 | const_pointer | Allocator::const_pointer std::allocator_traits<Allocator>::const_pointer |
7 | iterator | 雙向迭代器 (BidirectionalIterator) |
8 | const_iterator | 常量雙向迭代器 (constant BidirectionalIterator) |
9 | reverse_iterator | std::reverse_iterator <iterator> |
10 | const_reverse_iterator | std::reverse_iterator <const_iterator> |
11 | size_type | 無符號整數型別 (std::size_t) |
12 | difference_type | 有符號整數型別 (std::ptrdiff_t) |
13 | key_compare | Compare |
14 | value_compare | Compare |
15 | allocator_type | Allocator |
來自 <set> 的函式
以下是 <set> 標頭檔案中所有方法的列表。
成員函式
預設成員函式
序號 | 方法及描述 |
---|---|
1 | 預設建構函式
構造集合容器。 |
2 | 範圍建構函式
使用範圍的內容構造集合容器。 |
3 | 複製建構函式
使用其他集合的副本構造集合容器。 |
4 | 移動建構函式
使用移動語義使用其他集合的內容構造集合容器。 |
5 | 初始化列表建構函式
使用初始化列表的內容構造集合容器。 |
6 | (解構函式)
銷燬集合容器。 |
7 | operator=
將值賦給集合容器。 |
迭代器
序號 | 方法及描述 |
---|---|
1 | set::begin
返回指向開頭的迭代器。 |
2 | set::cbegin
返回指向開頭的常量迭代器。 |
3 | set::end
返回指向結尾的迭代器。 |
4 | set::cend
返回指向結尾的常量迭代器。 |
5 | set::rbegin
返回指向反向開頭的反向迭代器。 |
6 | set::crbegin
返回指向反向開頭的常量反向迭代器。 |
7 | set::rend
返回指向反向結尾的反向迭代器。 |
8 | set::crend
返回指向反向結尾的常量反向迭代器。 |
容量
序號 | 方法及描述 |
---|---|
1 | set::empty
返回集合容器是否為空。 |
2 | set::size
返回集合容器中元素的數量。 |
3 | set::max_size
返回集合容器可以容納的最大元素數量。 |
修改器
序號 | 方法及描述 |
---|---|
1 | set::clear
從集合容器中移除所有元素。 |
2 | set::insert
在集合容器中插入新元素。 |
3 | set::emplace
如果新元素唯一,則將其插入集合中。 |
4 | set::emplace_hint
如果新元素唯一,則將其插入集合中,並提供有關插入位置的提示。 |
5 | set::erase
從集合容器中移除單個元素或一系列元素。 |
6 | set::swap
將容器的內容與另一個相同型別的集合容器的內容交換。 |
查詢
序號 | 方法及描述 |
---|---|
1 | set::count
返回集合容器中具有匹配值的元素的數量。 |
2 | set::find
在集合容器中搜索值,如果找到則返回指向它的迭代器,否則返回指向 set::end 的迭代器。 |
3 | set::lower_bound
返回一個迭代器,指向集合容器中第一個不被認為在 value 之前的元素。 |
4 | set::upper_bound
返回一個迭代器,指向集合容器中第一個被認為在 value 之後的元素。 |
5 | set::equal_range
返回一個範圍的邊界,該範圍包含集合容器中所有等效於 value 的元素。 |
觀察者
序號 | 方法及描述 |
---|---|
1 | set::key_comp
返回集合容器使用的比較物件的副本。 |
2 | set::value_comp
返回集合容器使用的比較物件的副本。 |
分配器
序號 | 方法及描述 |
---|---|
1 | set::get_allocator
返回與集合容器關聯的分配器物件的副本。 |