Heim  >  Artikel  >  Backend-Entwicklung  >  Wie iteriere ich über einen C++-STL-Container?

Wie iteriere ich über einen C++-STL-Container?

WBOY
WBOYOriginal
2024-06-05 18:29:01351Durchsuche

Um über einen STL-Container zu iterieren, können Sie die Funktionen begin() und end() des Containers verwenden, um den Iteratorbereich abzurufen: Vektor: Verwenden Sie eine for-Schleife, um über den Iteratorbereich zu iterieren. Verknüpfte Liste: Verwenden Sie die Memberfunktion next(), um die Elemente der verknüpften Liste zu durchlaufen. Zuordnung: Holen Sie sich einen Iterator von Schlüssel-Wert-Paaren und verwenden Sie zum Durchlaufen eine for-Schleife.

如何遍历C++ STL容器?

So durchlaufen Sie einen C++-STL-Container

Das Durchlaufen eines C++-Standard-Template-Library-Containers (STL) ist eine wesentliche Aufgabe in der täglichen Arbeit von Programmierern. STL bietet eine Reihe vordefinierter Datenstrukturen wie Vektoren, verknüpfte Listen und Karten mit jeweils eigenen Traversierungsmethoden.

STL-Vektoren durchqueren

Um über einen Vektor zu iterieren, können wir die Funktionen begin() und end() verwenden, um den Iteratorbereich abzurufen: 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;
}

Ausgabe :

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3

STL-verknüpfte Liste durchlaufen🎜🎜Um eine verknüpfte Liste zu durchlaufen, können wir die Funktionen front() und back() der verknüpften Liste und die Funktion next() Mitgliedsfunktion: 🎜rrreee🎜🎜Ausgabe: 🎜🎜rrreee🎜STL-Zuordnungen durchlaufen🎜🎜Um eine Zuordnung zu durchlaufen, können wir den begin()der Zuordnung verwenden > und end() code> Funktion ruft den Iterator von Schlüssel-Wert-Paaren ab: 🎜rrreee🎜🎜Ausgabe: 🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonWie iteriere ich über einen C++-STL-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn