emplace
函数用于在vector
中的指定位置(或末尾)插入一个新元素,可以避免在插入元素时进行冗余拷贝操作。其函数签名为:
template <class... Args>
iterator emplace (const_iterator position, Args&&... args);
其中,position
表示要插入的位置,Args... args
表示要插入元素的构造参数。使用emplace
函数时,会直接调用元素类型的构造函数来构造新元素,并将其插入到vector
中。
示例代码如下:
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 在位置2插入新元素6
auto it = vec.emplace(vec.begin() + 2, 6);
// 输出插入后的vector
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
以上代码会输出1 2 6 3 4 5
,表示在位置2插入了新元素6。