emplace_back 例程
时间: 2023-10-14 21:08:10 浏览: 69
emplace_back是一个模板函数,用于在容器的末尾插入一个元素。它的语法是:
```c++
template <class... Args>
void emplace_back(Args&&... args);
```
它可以接受任意数量的参数,这些参数会被转发给元素类型的构造函数进行构造。相比于调用push_back函数,使用emplace_back可以减少元素类型的构造和析构次数,从而提高程序的性能。
相关问题
emplace_back例程
emplace_back() 是 C++ STL 中 vector 容器的一个成员函数,用于在 vector 的末尾添加一个元素,而不是像 push_back() 那样先创建一个元素,再将其插入到容器中。emplace_back() 函数直接在 vector 的内存空间中构造一个元素,效率更高。下面是一个 emplace_back() 的例程:
```c++
#include <iostream>
#include <vector>
class MyClass {
public:
MyClass(int x, int y): x_(x), y_(y) {}
void print() const {
std::cout << "x = " << x_ << ", y = " << y_ << std::endl;
}
private:
int x_;
int y_;
};
int main() {
std::vector<MyClass> vec;
// 添加元素
vec.emplace_back(1, 2);
vec.emplace_back(3, 4);
vec.emplace_back(5, 6);
// 输出元素
for (const auto& elem : vec) {
elem.print();
}
return 0;
}
```
上述例程中,我们定义了一个包含两个整型成员变量的 MyClass 类。然后,我们创建了一个 vector 容器,用于存储 MyClass 类型的对象。接下来,我们使用 emplace_back() 函数向 vector 中添加了三个 MyClass 类型的对象。最后,我们使用 for 循环遍历 vector 容器中的元素,并调用 MyClass 类的 print() 函数输出每个元素的值。
emplace_back
emplace_back 是 C++ STL 中 vector 的一个成员函数,它可以在 vector 的末尾添加一个元素,并且可以在添加元素的同时进行构造。这意味着它可以避免一些额外的复制操作,从而提高性能。
push_back 是 STL 中 vector 的一个成员函数,它也是在 vector 的末尾添加一个元素,但是它只能添加已经存在的元素或对象的拷贝。
总的来说 emplace_back 是 push_back 的一种更高效的替代方案,因为它可以避免不必要的复制操作。
阅读全文