首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::unordered_set::extract

node_type extract( const_iterator position );

(1)

(since C++17)

node_type extract( const key_type& x );

(2)

(since C++17)

1%29取消链接包含position并返回节点手柄拥有它的人

2%29如果容器有一个密钥相当于x,将包含该元素的节点从容器中取消链接,并返回节点手柄它的主人。否则,返回一个空节点句柄。

在任何一种情况下,都不会复制或移动任何元素,只会重新指向容器节点的内部指针。

提取节点只使迭代器无效,并保留未删除的元素的相对顺序。指针和对提取元素的引用仍然有效,但不能在元素被节点句柄拥有时使用:如果元素被插入到容器中,它们就会变得可用。

参数

position

-

a valid iterator into this container

x

-

a key to identify the node to be extracted

返回值

阿节点手柄它拥有提取的元素,或空节点句柄,以防在重载%282%29中找到该元素。

复杂性

平均病例O%281%29例,最坏病例O%28a%28%29%29例。

注记

从集合中提取出一个只移动的对象是唯一的方法。

二次

代码语言:javascript
复制
set<move_only_type> s;
s.emplace(...);
move_only_type mot = move(s.extract(s.begin()).value());

二次

另见

merge (C++17)

splices nodes from another container (public member function)

insert

inserts elements or nodes (since C++17) (public member function)

erase

erases elements (public member function)

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券