std::flat_set<Key,Compare,KeyContainer>:: emplace
|
template
<
class
...
Args
>
std:: pair < iterator, bool > emplace ( Args && ... args ) ; |
(C++23 起)
(C++26 起为 constexpr) |
|
若容器中尚不存在具有该键的元素,则使用给定的 args 在容器中就地构造并插入新元素。
First, initializes an object t of type
value_type
with
std::
forward
<
Args
>
(
args
)
...
, then inserts
t
as if by
auto it = ranges::upper_bound(c, t, compare); c.insert(it, std::move(t));
此重载仅当 std:: is_constructible_v < value_type, Args... > 为 true 时参与重载决议。
如果
value_type
无法通过
args
在
flat_set
中进行
原位构造
,则行为未定义。
| 关于迭代器失效的信息复制自 此处 |
目录 |
参数
| args | - | 要转发给元素构造函数的参数 |
返回值
一个由指向插入元素(或阻止插入的元素)的迭代器和一个 bool 值组成的对,当且仅当插入成功时该布尔值被设置为 true 。
异常
若因任何原因抛出异常,此函数不产生任何效果( 强异常安全保证 )。
复杂度
与容器大小呈对数关系。
注释
谨慎使用
emplace
可以在构造新元素的同时避免不必要的复制或移动操作。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
使用提示原位构造元素
(公开成员函数) |
|
|
插入元素
(公开成员函数) |