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

Comment parcourir un conteneur C++ STL ?

WBOY
WBOYoriginal
2024-06-05 18:29:01351parcourir

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;
}

输出:

1 2 3 4 5 
1 2 3 4 5 

遍历 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;
}

输出:

1 2 3 4 5 
1 2 3 4 5 

遍历 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;
}

Sortie :

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3

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!

Déclaration:
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