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。
另见
insert | inserts elements (public member function) |
---|
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。