std::flat_multimap<Key,T,Compare,KeyContainer,MappedContainer>::extract
来自cppreference.com
< cpp | container | flat multimap
containers extract()&&; | (C++23 起) | |
提取所适配的各容器 c
。等价于 return std::move(c);。
此操作后 *this 为空,即使抛出了异常也是如此。
目录 |
[编辑]返回值
std::move(c)。
[编辑]复杂度
常数。
[编辑]示例
运行此代码
#include <cassert>#include <flat_map>#include <print>#include <type_traits>#include <utility>#include <vector> int main(){std::flat_multimap<int, double> map{{1, 1.1}, {2, 2.2}, {3, 3.3}};constauto size{map.size()}; auto c{std::move(map).extract()};assert(c.keys.size()== size);assert(c.values.size()== size);assert(map.empty());assert(map.keys().empty());assert(map.values().empty()); // 默认的键和值容器都是 std::vector: static_assert(std::is_same_v<decltype(c.keys), std::vector<int>>); static_assert(std::is_same_v<decltype(c.values), std::vector<double>>); std::println("键:{}", c.keys);std::println("值:{}", c.values);}
输出:
键:[1, 2, 3] 值:[1.1, 2.2, 3.3]
[编辑]参阅
替换底层各容器 (公开成员函数) |