技術共有

【Cに恋する】ベクターの使い方を詳しく解説

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


こんにちは、クラスメートの皆さん、この記事では C のベクトル コンテナについて詳しく説明します。標準テンプレート ライブラリ (STL) で最もよく使用される動的配列の 1 つであるベクトルは、柔軟な要素ストレージと効率的なアクセス方法を提供します。基本的な知識から始めて、その作成、初期化、走査、スペース管理、追加、削除、確認、変更の操作を徐々に学びます。詳細な例と分析を通じて、読者が Vector を使用するためのスキルと注意事項を十分に理解し、習得できるようにしたいと考えています。

1: ベクトルの概要

ベクター書類

  1. ベクトルは、可変サイズの配列を表すシーケンス コンテナーです。
  2. 配列と同様に、ベクトルも要素を格納するために連続的な記憶領域を使用します。これは、添字を使用してベクトルの要素にアクセスできることを意味し、配列と同じくらい効率的です。ただし、配列とは異なり、そのサイズは動的に変更でき、そのサイズはコンテナーによって自動的に処理されます。
  3. 基本的に、vector は動的に割り当てられた配列を使用して要素を格納します。新しい要素が挿入されると、記憶領域を増やすために配列のサイズを変更する必要があります。これは、新しい配列を割り当て、すべての要素をこの配列に移動することによって行われます。新しい要素がコンテナに追加されるたびにベクトルのサイズが変更されるわけではないため、これは時間の点で比較的高価なタスクです。
  4. ベクトル割り当てスペース戦略: ストレージ スペースが実際に必要なストレージ スペースよりも大きいため、ベクトルは、増加の可能性を考慮して追加のスペースを割り当てます。ライブラリーが異なれば、スペースの使用量と再割り当てをトレードオフするために異なる戦略が使用されます。ただし、いずれの場合も、最後に要素の挿入が一定時間で完了するように、再割り当ての間隔サイズは対数的に増加する必要があります。
  5. したがって、Vector は、ストレージ スペースを管理し、効率的な方法で動的に拡張する機能を得るために、より多くのストレージ スペースを必要とします。
  6. 他の動的シーケンス コンテナー (deque、list、forward_list) と比較して、vector は要素にアクセスする際の効率が高く、最後の要素の追加と削除も比較的効率的です。最後ではない他の削除および挿入操作の場合、効率はさらに低くなります。 list と forward_list よりも、統合されたイテレータと参照を使用する方が適切です。


STL の使用には、「使える」、「理解できる」、「拡張できる」という 3 つの領域があります。次はベクトルを学習しましょう。

2: ベクトルの作成と初期化

ヘッダーファイルが必要です#include