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