Maison > développement back-end > C++ > Comment parcourir un conteneur C++ STL ?

Comment parcourir un conteneur C++ STL ?

WBOY
Libérer: 2024-06-05 18:29:01
original
417 Les gens l'ont consulté

Pour parcourir un conteneur STL, vous pouvez utiliser les fonctions start() et end() du conteneur pour obtenir la plage de l'itérateur : Vecteur : utilisez une boucle for pour parcourir la plage de l'itérateur. Liste chaînée : utilisez la fonction membre next() pour parcourir les éléments de la liste chaînée. Mappage : obtenez un itérateur de paires clé-valeur et utilisez une boucle for pour parcourir.

如何遍历C++ STL容器?

Comment parcourir un conteneur STL C++

Parcourir un conteneur STL (Standard Template Library) C++ est une tâche essentielle dans le travail quotidien des programmeurs. STL fournit une série de structures de données prédéfinies telles que des vecteurs, des listes chaînées et des cartes, chacune avec ses propres méthodes de parcours.

Parcours de vecteurs STL

Pour parcourir un vecteur, nous pouvons utiliser les fonctions begin() et end() pour obtenir la plage de l'itérateur : begin()end() 函数获得迭代器范围:

#include <vector>

int main() {
  std::vector<int> v = {1, 2, 3, 4, 5};

  // 使用基于范围的 for 循环
  for (int num : v) {
    std::cout << num << " ";
  }

  std::cout << std::endl;

  // 使用迭代器
  for (std::vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
  }

  std::cout << std::endl;

  return 0;
}
Copier après la connexion

输出:

1 2 3 4 5 
1 2 3 4 5 
Copier après la connexion
Copier après la connexion

遍历 STL 链表

要遍历一个链表,我们可以使用链表的 front()back() 函数以及该链表的 next() 成员函数:

#include <list>

int main() {
  std::list<int> l = {1, 2, 3, 4, 5};

  // 使用基于范围的 for 循环
  for (int num : l) {
    std::cout << num << " ";
  }

  std::cout << std::endl;

  // 使用迭代器
  std::list<int>::iterator it = l.begin();
  while (it != l.end()) {
    std::cout << *it << " ";
    it = it->next();
  }

  std::cout << std::endl;

  return 0;
}
Copier après la connexion

输出:

1 2 3 4 5 
1 2 3 4 5 
Copier après la connexion
Copier après la connexion

遍历 STL 映射

要遍历一个映射,我们可以使用映射的 begin()end()

#include <map>

int main() {
  std::map<std::string, int> m = {{"Apple", 1}, {"Banana", 2}, {"Cherry", 3}};

  // 使用基于范围的 for 循环
  for (auto const& [key, value] : m) {
    std::cout << key << ": " << value << std::endl;
  }

  std::cout << std::endl;

  // 使用迭代器
  for (std::map<std::string, int>::iterator it = m.begin(); it != m.end(); ++it) {
    std::cout << it->first << ": " << it->second << std::endl;
  }

  return 0;
}
Copier après la connexion

Sortie :

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3
Copier après la connexion
Traverse STL linked list🎜🎜Pour parcourir une liste chaînée, on peut utiliser les fonctions front() et back() de la liste chaînée et les next() Fonction membre : 🎜rrreee🎜🎜Sortie : 🎜🎜rrreee🎜Traverser les mappages STL🎜🎜Pour parcourir un mappage, nous pouvons utiliser le begin()du mappage > et end() code> La fonction obtient l'itérateur des paires clé-valeur : 🎜rrreee🎜🎜Sortie : 🎜🎜rrreee

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal