問題タブ [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.
c++ - emplace_back による push_back の実装
C
に似たコンテナを設計したいとしstd::vector
ます。次のように をpush_back
呼び出して実装することをお勧めします。emplace_back
または、代わりに:
?
c++ - std::vector の定置のような構造
std::vector
などの移動コンストラクターまたはコピー コンストラクターを使用せずに、固定サイズのオブジェクトを構築したいとしstd::atomic<int>
ます。この場合、基礎となるクラスには、デフォルトのコンストラクター (値を 0 に初期化する) だけでなく、std::atomic
引数を取る 1 引数のコンストラクターがあります。int
の作成の一部として引数が最初にベクトルの要素型に変換され、コピーまたは移動コンストラクターが呼び出されるため、initializer_list
構文 likeの使用はstd::vector<std::atomic<int>> v{1,2,3}
機能しません。T
initializer_list
特定のケースではstd::atomic<int>
、ベクトルをデフォルトで構築し、その後要素を変更できます。
ただし、見苦しく非効率であることに加えて、適切なコンストラクターを呼び出すことによって得られるものと同等の構築後の突然変異を多くのオブジェクトが提供しない可能性があるため、これは一般的な解決策ではありません。
ベクトルの構築で必要な「定位置のような」動作を取得する方法はありますか?
c++ - 複雑なオブジェクトの配置
オブジェクトに「配置」機能を実装しようとしています。以下のような構成になっています。size_t とテンプレート タイプをペアにするテンプレート オブジェクトがあります。これをベクターなどの std ライブラリ コンテナーに配置できるようにしたいと考えています。std::pair
私のクラスB
はデータに関する他の機能を提供するため、私は a を使用していません。
メインのように emplace を呼び出すことができるように、コードをどのように変更する必要がありますか?