📅  最后修改于: 2023-12-03 15:23:22.482000             🧑  作者: Mango
在C++ STL中,emplace()
是一个成员函数,用于在容器中就地构造元素,而不需要使用拷贝或移动构造函数。 这可用于在容器中构造对象,而不必显式地调用构造函数和析构函数。
emplace()
函数通常用于将元素(对象)插入到容器中。
下面是一个使用emplace()
向vector
容器中插入元素的示例代码:
#include <iostream>
#include <vector>
int main() {
std::vector<std::pair<int, char>> vect;
//插入三个元素,使用pair中的值初始化vector
vect.emplace_back(1, 'a');
vect.emplace_back(2, 'b');
vect.emplace_back(3, 'c');
//遍历vector中的元素
for (auto const& elem : vect) {
std::cout << elem.first << " " << elem.second << std::endl;
}
return 0;
}
代码输出:
1 a
2 b
3 c
在此代码中,我们使用emplace_back()
函数将三个元素插入vector
容器。emplace_back()
函数将我们传入的参数用于构造一个新的 std::pair <int,char>
对象,而不是使用拷贝构造函数复制元素。这使得emplace_back()
函数比push_back()
函数更高效。
注意:和emplace_back()``emplace_back()
对于vector
类似的函数对于其他容器类也是可用的。例如,可以使用emplace()
将元素插入std::map
容器。