問題タブ [emplace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1317 参照

c++ - ベクトル内の unordered_map への参照に関する C++11 segfault

次のコードを実行すると、「find()」呼び出しで segfault が発生します。

(-std=c++11 でコンパイル)

ただし、2 番目の emplace_back() 呼び出しが削除された場合、segfault は発生しません。

どうしてこれなの?参照変数を間違って使用していますか? 別の要素をスタックに追加するとトップマップが無効になりますか?

0 投票する
2 に答える
33186 参照

c++ - C++でのunordered_map::emplaceとunordered_map::insertの違いは何ですか?

C++のstd::unordered_map::emplaceとの違いは何ですか?std::unordered_map::insert

0 投票する
2 に答える
31227 参照

c++11 - std::move を使用した C++11 push_back() と、既に構築されたオブジェクトに対する emplace_back() の効率

C++ 11では、インプレース構築が可能であるemplace_back()ため、一般的に(効率の観点から)好まれますが、構築済みのオブジェクトを使用する場合はまだそうですか?push_back()push_back(std::move())

たとえばemplace_back()、次のような場合でも優先されますか?

さらに、上記の例で代わりに次のことを行う利点はありますか?

または、ここでの移動は完全に冗長であるか、効果がありませんか?

0 投票する
3 に答える
15535 参照

c++ - デフォルトのコンストラクターを使用してベクトルに配置する

コピー不可および割り当て不可のvector::emplaceオブジェクトをデフォルトで構築し、新しく作成されたオブジェクトへのイテレーターを使用して、オブジェクトで特定のメソッドを使用したいと考えています。クラスのパラメーター化されたコンストラクターはなく、デフォルトのコンストラクターだけであることに注意してください。簡単な例は次のとおりです。

vector::emplace()新しいオブジェクトを構築しますが、デフォルト以外のコンストラクタへの引数が必要です。vector::emplace_back()ベクトルの最後に構築されます。

デフォルトの構築で定置する方法はありますか。std::piecewise_constructおそらくマップの場合と同様に、区分的な構築またはデフォルトの転送を使用する方法はありますか? たとえば、マップの場合、次を使用できます。

ベクトルに似たものはありますか?

0 投票する
2 に答える
25680 参照

c++ - 値をコピーせずに std::map emplace

C++11std::map<K,V>型には、emplace他の多くのコンテナーと同様に機能があります。

このコードは宣伝どおりに機能し、をstd::pair<K,V>直接置き換えますが、 のコピーが作成され、実行されます。keyval

値の型をマップに直接埋め込むことは可能ですか? への呼び出しで引数を移動するよりもうまくできるemplaceでしょうか?


より完全な例を次に示します。