📜  C++ Vector.emplace()函数(1)

📅  最后修改于: 2023-12-03 15:13:57.788000             🧑  作者: Mango

C++ Vector.emplace()函数介绍

在C++中,vector是最常用的容器之一。vector可以作为动态数组使用,并且允许在末尾快速添加新元素。通常,使用push_back()函数添加新元素到vector末尾。但是,对于需要创建临时对象并将其添加到vector中的情况,就可以使用emplace()函数。

emplace()函数

emplace()函数用于在vector中的指定位置构造一个对象。与push_back()函数不同,emplace()函数避免了所有的复制操作。emplace()函数会在vector的末尾构造一个新对象,而不是将对象塞入vector的末尾。这意味着,emplace()函数比push_back()函数更加快速。

语法
vector_name.emplace(position, args);
  • vector_name: vector对象的名称
  • 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
小结
  • emplace()函数用于快速地构造一个对象并将其添加到vector中。
  • emplace()函数会在指定的位置构造一个新对象,避免复制操作,比push_back()函数更加快速。