- 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++库 - <flat_set>
<flat_set> 头文件是标准库中的一个容器,设计为具有类似数组结构的有序关联容器。
这类似于 std::vector,并提供内存效率和快速访问,尤其适用于小型集合。此头文件是容器库的一部分。包含 <flat_set> 头文件
要在 C++ 程序中包含 <flat_set> 头文件,可以使用以下语法。
#include <flat_set>
<flat_set> 头文件的函数
以下是 <flat_set> 头文件的所有函数列表。
迭代器
迭代器指的是允许访问容器中元素的对象,类似于数组中的指针。在 flat_set 中,它们用于以排序顺序遍历元素,而不会修改底层容器。
序号 | 函数和描述 |
---|---|
1 | begin & cbegin
这些函数返回指向容器中第一个元素的迭代器。 |
2 | end & cend
这些函数返回指向容器中第一个元素的迭代器。 |
3 | rbegin & crbegin
这些函数返回指向最后一个元素的反向迭代器。 |
4 | rend & crend
这些函数返回指向第一个元素之前的一个的反向迭代器。 |
检索迭代器
在下面的示例中,我们将使用 begin() 返回指向容器第一个元素的迭代器。
#include <iostream> #include <boost/container/flat_set.hpp> int main() { boost::container::flat_set<int> fs = {10, 20, 30, 40}; auto it = fs.begin(); std::cout << "First element: " << *it << std::endl; return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
First element: 10
容量
容量函数用于查询容器的大小和存储限制,例如检查容器是否为空,容器包含的元素数量。
序号 | 函数和描述 |
---|---|
1 | empty
此函数检查容器是否为空。 |
2 | size
此函数返回容器中元素的数量。 |
3 | max_size
此函数返回容器可以容纳的最大元素数量。 |
检查容器
在下面的示例中,我们将使用 empty() 来检查容器是否为空,如果它不包含任何元素,则返回 true。
#include <iostream> #include <boost/container/flat_set.hpp> int main() { boost::container::flat_set<int> fs; if (fs.empty()) { std::cout << "The flat_set is empty." << std::endl; } return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
The flat_set is empty.
修改器
修改器函数用于通过添加、删除或替换元素来更改容器的内容。
序号 | 函数和描述 |
---|---|
1 | emplace
此函数在容器中就地构造并插入一个元素。 |
2 | emplace_hint
此函数使用其位置提示就地插入一个元素。 |
3 | insert
此函数将元素插入容器。 |
4 | insert_range
此函数将一系列元素插入容器。 |
5 | extract
此函数从 flat_set 中提取底层容器。 |
6 | replace
此函数用一组新的元素替换底层容器。 |
7 | erase
此函数从容器中删除元素。 |
8 | swap
此函数交换两个 flat_set 对象的内容。 |
9 | clear
此函数清除所有元素,使容器为空。 |
添加元素
在下面的示例代码中,我们将使用 insert() 将元素添加到容器中。
#include <boost/container/flat_set.hpp> #include <iostream> int main() { boost::container::flat_set<int> fs = {10, 20, 30}; fs.insert(25); for (int elem : fs) { std::cout << elem << " "; } return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
10 20 25 30
查找
查找函数允许根据其键搜索和访问元素。
序号 | 函数和描述 |
---|---|
1 | find
此函数查找具有特定键的元素。 |
2 | count
此函数返回与特定键匹配的元素数量。 |
3 | contains
此函数检查容器是否包含具有特定键的元素。 |
4 | lower_bound
此函数返回指向第一个不小于给定键的元素的迭代器。 |
5 | upper_bound
此函数返回指向第一个大于给定键的元素的迭代器。 |
6 | equal_range
此函数返回匹配特定键的元素范围内的迭代器对。 |
查找元素
在下面的示例代码中,我们将使用 find() 搜索具有特定键的元素。
#include <boost/container/flat_set.hpp> #include <iostream> int main() { boost::container::flat_set<int> fs = {10, 20, 30, 40}; auto it = fs.find(30); if (it != fs.end()) { std::cout << "Element 30 found." << std::endl; } return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
Element 30 found.
观察者
观察者函数提供对容器内部使用的比较和排序机制的访问。
序号 | 函数和描述 |
---|---|
1 | key_comp
此函数用于比较键。 |
2 | value_comp
返回比较 value_type 类型对象中的键的函数。 |
比较键
在下面的示例中,我们将使用 key_comp(),因为它返回比较键的对象。
#include <boost/container/flat_set.hpp> #include <iostream> int main() { boost::container::flat_set<int> fs = {30, 10, 20}; auto comp = fs.key_comp(); std::cout << std::boolalpha << comp(10, 30) << std::endl; return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
true