1. ホーム
  2. c++

[解決済み] C++ベクターのinsertとpush_backの違いについて

2023-06-14 21:30:15

質問

との違いを知りたいのですが。 vector 's push_backinsert という関数があります。

構造的な違い(複数可)はありますか?

本当に大きな性能差があるのでしょうか?

どのように解決するのですか?

最大の違いは、その機能性です。 push_back の最後には常に新しい要素が置かれます。 vectorinsert では、新しい要素の位置を選択することができます。これはパフォーマンスに影響します。 vector 要素は、そのために割り当てられたメモリが少なすぎるため、長さを増やす必要がある場合にのみ、メモリ内で移動されます。一方 insert は、新しい要素の選択位置の後にすべての要素を移動することを強制します。単にそのための場所を作ればいいのです。このため insert よりも効率的でないことがよくあります。 push_back .