C++ .emplace_back函数
时间: 2024-03-06 21:42:15 浏览: 78
C++中的`.emplace_back()`函数是从C++11起新增到vector中的方法,它可以在vector的末尾直接构造一个元素,而不需要先构造一个临时对象再将其拷贝或移动到vector中。`.emplace_back()`函数的函数声明为:`template<class... Args> void emplace_back( Args&&... args );`,它可以接受任意数量和类型的参数,并将这些参数传递给元素的构C++11中的emplace_back函数是STL容器vector的一个成员函数,它可以在vector的末尾直接构造一个元素,而不需要先创建对象再添加。与push_back函数不同,emplace_back函数可以直接传递构造函数的参数,而不需要先创建一个对象。这样可以避免不必要的拷贝和移动操作,提高程序的效率。同时,emplace_back函数还支持可变参数模板,可以传递任意数量和类型的参数。
举个例子,假设我们有一个结构体Youbain,它有三个成员变量:_contry、_privence和_number。我们可以使用emplace_back函数来向vector中添加一个Youbain对象,如下所示:
```
vector<Youbain> el;
el.emplace_back("China", "Shannxi", 610000);
```
这样就可以直接在vector的末尾构造一个Youbain对象,而不需要先创建一个对象再添加。同时,我们还可以使用push_back函数来添加一个Youbain对象,如下所示:
```
el.push_back(Youbain("China", "Beijing", 10000));
```
这样就需要先创建一个Youbain对象,再将其添加到vector中。可以看到,使用emplace_back函数可以避免不必要的拷贝和移动操作,提高程序的效率。
阅读全文