両者の違いは何だろうと考えていました。emplace が c++11 の追加であることに気付きました。では、なぜ追加するのですか?
質問する
54489 次
2 に答える
153
Emplace はオブジェクトをその場で構築するために必要な引数を取りますが、insert はオブジェクト (への参照) を取ります。
struct Foo
{
Foo(int n, double x);
};
std::vector<Foo> v;
v.emplace(someIterator, 42, 3.1416);
v.insert(someIterator, Foo(42, 3.1416));
于 2013-02-09T12:44:57.650 に答える
50
insert
オブジェクトをベクターにコピーします。
emplace
それらをベクター内に構築します。
于 2013-02-09T12:45:29.067 に答える