C++ STL (標準テンプレート ライブラリ) では、コンテナーはデータを格納するために使用されるクラス テンプレートです。コンテナ内の要素がソートされているかどうかによって、コンテナは大まかに順序なしコンテナと順序ありコンテナに分けられます。この記事では、これら 2 種類のコンテナーの違いについて説明し、具体的なコード例を通じてその違いを説明します。 1. 注文されたコンテナ順序付けられたコンテナ内の要素は自動的に並べ替えられます。 C++ STLでは、典型的な順序付きコンテナ これらには、std::vector (std::sort でソートされている場合)、std::deque (これもソートされている場合)、std::list (ソートされている場合)、std::set、std::multiset、std::map、std::multimap が含まれます。 たとえば、std::set は、内部要素が自動的にソートされ、重複する要素を許可しないコンテナです。以下は std::set を使用する簡単な例です。 このコードは 1 3 4 5 7 を出力します。要素が自動的にソートされていることがわかります。 2. 順序付けされていないコンテナ順序付けされたコンテナとは異なり、順序付けされていないコンテナ内の要素は自動的にはソートされません。 C++ STL の順序なしコンテナーには、主に std::unordered_set、std::unordered_multiset、std::unordered_map、std::unordered_multimap が含まれます。 これらの順序付けられていないコンテナはハッシュ テーブルに基づいて実装されるため、要素の挿入、削除、および検索操作の平均時間計算量は通常 O(1) になります (理想的なケースでは、ハッシュ関数が適切に設計され、衝突はありません)。ただし、ハッシュ衝突の可能性があるため、最悪の場合、これらの操作の時間計算量は O(n) にまで上昇する可能性があります。 以下は std::unordered_set を使用する簡単な例です。 std::unordered_set は順序付けられていないため、このコードの出力は 5 7 1 3 4 のようになります (出力順序はハッシュ関数と内部実装によって異なる場合があります)。 3. パフォーマンス比較1. 時間の計算量:
2. 空間の複雑さ:
4. 使用シナリオ
V. 結論C++ の順序なしコンテナーと順序付きコンテナーでは、内部実装、パフォーマンス、および使用シナリオに大きな違いがあります。順序付けされていないコンテナーはハッシュ テーブルに基づいて実装され、平均検索、挿入、削除の時間が短くなりますが、より多くのスペースを占有する可能性があります。順序付きコンテナは、バランス検索ツリーなどのデータ構造に基づいて実装されます。要素は自動的にソートされますが、検索、挿入、削除操作の時間的複雑さは比較的高くなります。使用するコンテナの選択は、特定のニーズとパフォーマンス要件に基づいて行う必要があります。 |
<<: パブリック クラウドの弾力性を活用するのが難しいのはなぜですか?
>>: Harbor はネットワークなしでも展開できますか?オフラインインストールガイドはこちら!
ASOのトラフィックの入り口は、アプリストアとアプリストア外に分かれています。ストア外:Baidu...
正直に言うと、4399ミニゲームプロダクトマネージャーのYin Jinqian氏の「大規模なキーワー...
[51CTO.com からのオリジナル記事] 7 年間の努力と見事な変貌。 2012年以降、6年連続...
今年も年末がやってきました。この一年、テクノロジー企業は浮き沈みを経験し、業界は数え切れないほどの変...
Baidu の製品は、ウェブマスターにとって常に無視できない製品でした。数か月前、Baidu は B...
パンデミックにより、企業のデジタル技術への支出が増加し続け、デジタルとクラウドの導入が加速しました。...
[51CTO.com からのオリジナル記事] 歴史を振り返ると、世界経済に大きな転換点があるたびに、...
「ダブル11」は、タオバオモールが2009年11月11日に最初のプロモーションを開催して以来、14年...
コンテナの操作は、多くのユーザーや開発者にとって日常的なタスクです。コンテナ開発者は、コンテナイメー...
著者は2年以上オンラインマーケティングに携わっています。最初は数十のウェブサイトを運営するインターネ...
あなたのウェブサイトの製品についてもっと多くの人に知ってもらいたい、そして本当に製品マネージャーを人...
アンジュケはアクセスできません【捜狐ITニュース】9月26日、中古住宅サイト「安居客」が昨日からアク...
床を掃いたり、箱を動かしたり、ダンスやパルクールをしたりと、あらゆる種類のかっこいいロボットが人々の...
[[349842]]ハイブリッド クラウドの動的な性質により、組織は戦略と実行を定期的に見直し、更新...
1. 勇敢に前進する――市場で足場を築く方法市場は企業が足がかりを築き、奮闘する戦場です。中小企業が...