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。