📜  在C++ STL中设置:: emplace()(1)

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

在C++ STL中设置:: emplace()

在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容器。