ホームページ  >  記事  >  バックエンド開発  >  C++ STL を使用してデータ構造の動的なサイズ変更を実装するにはどうすればよいですか?

C++ STL を使用してデータ構造の動的なサイズ変更を実装するにはどうすればよいですか?

王林
王林オリジナル
2024-06-04 18:05:00756ブラウズ

はい、C++ STL コンテナーを使用すると、データ構造の動的なサイズ変更が可能です。手動でメモリを割り当てなくても、コンテナのサイズを自動的に増減できます。具体的な手順: std::vector を使用して動的配列を作成します。 std::deque を使用して両端キューを作成します。 std::list を使用してリンク リストを作成します。

如何使用 C++ STL 实现数据结构的动态大小调整?

C++ STL を使用してデータ構造の動的なサイズ変更を実装するにはどうすればよいですか?

C++ 標準テンプレート ライブラリ (STL) は、プログラム内のデータを効率的に保存および管理するのに役立つ一連の強力なデータ構造コンテナを提供します。これらのコンテナの重要な機能は、メモリを手動で再割り当てすることなく、データ量の変化に合わせてサイズを動的に調整できることです。

動的配列を実装するには std::vector を使用します

std::vector 实现动态数组

std::vector 是一个动态数组容器,它将在需要时自动增加或减少其容量。

#include <vector>

std::vector<int> myVector;

// 添加元素
myVector.push_back(1);
myVector.push_back(2);

// 访问元素
std::cout << myVector[0] << std::endl; // 输出:1

// 动态调整大小
myVector.pop_back(); // 删除最后一个元素
myVector.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

使用 std::deque 实现双端队列

std::deque 是一个双端队列容器,它允许在队列的头部或尾部高效地添加和删除元素。

#include <deque>

std::deque<int> myDeque;

// 添加元素
myDeque.push_front(1); // 在头部添加元素
myDeque.push_back(2); // 在尾部添加元素

// 访问元素
std::cout << myDeque.front() << std::endl; // 输出:1

// 动态调整大小
myDeque.pop_front(); // 删除头部元素
myDeque.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

使用 std::list 实现链表

std::list 是一个双向链表容器,它可以在 O(1) 时间复杂度内插入和删除元素。

#include <list>

std::list<int> myList;

// 添加元素
myList.push_front(1);
myList.push_back(2);

// 访问元素
auto it = myList.begin();
std::cout << *it << std::endl; // 输出:1

// 动态调整大小
myList.pop_back(); // 删除尾部元素
myList.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

实战案例:动态调整大小的数组

假设我们有一个程序需要处理不确定数量的输入值。我们可以使用 std::vectorstd::vector は、必要に応じて容量を自動的に増減する動的配列コンテナーです。

#include <vector>
#include <iostream>

int main() {
  std::vector<int> inputValues;

  // 读取输入值并添加到数组中
  int value;
  while (std::cin >> value) {
    inputValues.push_back(value);
  }

  // 处理输入值中的数据......

  return 0;
}

std::deque を使用して、両端キューを実装します

std::deque は、head または Tail の追加と要素を効率的に削除します。 🎜rrreee🎜std::list を使用してリンク リストを実装します🎜std::list は二重リンク リスト コンテナーであり、O(1 で実装できます) ) 時間計算量 要素の挿入と削除。 🎜rrreee🎜実践例: 配列の動的サイズ変更🎜不確実な数の入力値を処理する必要があるプログラムがあると仮定します。 std::vector を使用して、これらの入力を格納する動的サイズの配列を作成できます。 🎜rrreee🎜 STL の動的サイズ変更機能を使用すると、プログラム内のデータ構造のスケーラビリティのニーズを簡単に満たす、簡潔で効率的な C++ プログラムを作成できます。 🎜

以上がC++ STL を使用してデータ構造の動的なサイズ変更を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。