C++的emplace函數是用來在容器中構造新對象的函數,與insert函數不同的是,emplace函數直接在容器內部構造對象,而不是先在外部構造對象再插入容器。
正確使用emplace函數的步驟如下:
例如,如果要往一個vector容器中插入一個自定義的對象,可以這樣使用emplace函數:
#include <iostream>
#include <vector>
class MyObject {
public:
MyObject(int val) : value(val) {}
int getValue() const { return value; }
private:
int value;
};
int main() {
std::vector<MyObject> vec;
// 使用emplace函數插入新對象
vec.emplace_back(10);
// 打印容器中的對象值
for (const auto& obj : vec) {
std::cout << obj.getValue() << std::endl;
}
return 0;
}
在上面的示例中,通過調用vec.emplace_back(10)
函數將一個MyObject對象插入到vector容器中,然后通過遍歷容器中的對象,打印出對象的值。