命名空间
变体
操作

std::flat_multiset<Key,Compare,KeyContainer>::emplace

来自 cppreference.cn
 
 
 
 
template< class... Args >
iterator emplace( Args&&... args );
(since C++23)

将一个新元素插入到容器中,该元素使用给定的 args 就地构造。

首先,使用 std::forward<Args>(args)... 初始化类型为 value_type 的对象 t,然后像通过以下方式插入 t
auto it = ranges::upper_bound(c, t, compare);
c.insert(it, std::move(t));

仅当 std::is_constructible_v<value_type, Args...>true 时,此重载才参与重载解析。

谨慎使用 emplace 可以允许在构造新元素的同时避免不必要的复制或移动操作。

目录

[edit] 参数

args - 转发给元素构造函数的参数

[edit] 返回值

指向插入元素的迭代器。

[edit] 异常

如果由于任何原因抛出异常,则此函数不起作用(强异常安全保证)。

[edit] 复杂度

容器大小的对数。

[edit] 示例

[edit] 参见

使用提示就地构造元素
(公共成员函数) [编辑]
插入元素
(公共成员函数) [编辑]