在线文档教程
C++
容器 | Containers

std::vector::emplace

STD::载体::Emplace

template< class... Args > iterator emplace( const_iterator pos, Args&&... args (since C++11)

将新元素直接插入容器中。pos元素是通过std::allocator_traits::construct,它通常使用Plant-New来在容器提供的位置构造就地元素。争论args...被转发给构造函数的std::forward<Args>(args)......

如果新的size()大于capacity(),所有迭代器和引用都无效。否则,只有插入点之前的迭代器和引用仍然有效。过去的结束迭代器也是无效的.

参数

pos-iterator before which the new element will be constructed
args-arguments to forward to the constructor of the element

类型要求

-T%28容器%27s元素类型%29必须满足MoveAssignable、MoveInsertable和EmplaceConstrucable的要求。

返回值

指向放置元素的Iterator。

复杂性

直线在之间的距离pos容器的末端。

例外

如果抛出异常%28例如。通过构造函数%29,容器未被修改,就好像该函数从未被调用过%28强异常保证%29一样。

注记

专业化STD::向量<bool>没有emplace()成员直到C++14。

另见

insertinserts elements (public member function)

© cppreference.com

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

http://en.cppreference.com/w/cpp/容器/Vectoral/emplace