📅  最后修改于: 2023-12-03 15:13:57.788000             🧑  作者: Mango
在C++中,vector是最常用的容器之一。vector可以作为动态数组使用,并且允许在末尾快速添加新元素。通常,使用push_back()函数添加新元素到vector末尾。但是,对于需要创建临时对象并将其添加到vector中的情况,就可以使用emplace()函数。
emplace()函数用于在vector中的指定位置构造一个对象。与push_back()函数不同,emplace()函数避免了所有的复制操作。emplace()函数会在vector的末尾构造一个新对象,而不是将对象塞入vector的末尾。这意味着,emplace()函数比push_back()函数更加快速。
vector_name.emplace(position, args);
在原来的vector中添加一个新的Person对象:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Person{
public:
string name;
int age;
Person(string n, int a){
name = n;
age = a;
}
};
int main(){
vector<Person> vec;
vec.emplace_back("Tom", 20);
vec.emplace(vec.begin(), "Jerry", 18);
for(auto it = vec.begin(); it != vec.end(); it++){
cout << it->name << " " << it->age << endl;
}
return 0;
}
输出:
Jerry 18
Tom 20