Oui, le redimensionnement dynamique des structures de données est possible à l'aide de conteneurs C++ STL. La taille des conteneurs peut automatiquement augmenter ou diminuer sans allocation manuelle de mémoire. Étapes spécifiques : utilisez std::vector pour créer un tableau dynamique. Utilisez std::deque pour créer un deque. Utilisez std::list pour créer une liste chaînée.
La bibliothèque de modèles standard C++ (STL) fournit une série de conteneurs de structure de données puissants pour nous aider à stocker et gérer efficacement les données dans nos programmes. Une caractéristique clé de ces conteneurs est la possibilité d'ajuster dynamiquement leur taille pour s'adapter aux changements de volume de données sans avoir besoin de réallouer manuellement la mémoire.
std::vector
pour implémenter des tableaux dynamiquesstd::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
est un conteneur de tableau dynamique qui augmentera ou diminuera automatiquement sa capacité en cas de besoin.
#include <vector> #include <iostream> int main() { std::vector<int> inputValues; // 读取输入值并添加到数组中 int value; while (std::cin >> value) { inputValues.push_back(value); } // 处理输入值中的数据...... return 0; }
Utilisez std::deque
pour implémenter une file d'attente à double extrémité
std::deque
est un conteneur deque qui permet aux ajouts de tête ou de queue et supprime les éléments efficacement. 🎜rrreee🎜Utilisez std::list
pour implémenter une liste chaînée🎜std::list
est un conteneur de liste doublement chaîné, qui peut être implémenté en O(1 ) complexité temporelle Insérer et supprimer des éléments. 🎜rrreee🎜Exemple pratique : redimensionnement dynamique des tableaux🎜Supposons que nous ayons un programme qui doit traiter un nombre incertain de valeurs d'entrée. Nous pouvons utiliser std::vector
pour créer un tableau de taille dynamique pour stocker ces entrées. 🎜rrreee🎜En utilisant la fonction de redimensionnement dynamique de STL, nous pouvons écrire des programmes C++ concis et efficaces qui répondent facilement aux besoins d'évolutivité des structures de données du programme. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!