首頁  >  文章  >  後端開發  >  如何遍歷C++ STL容器?

如何遍歷C++ STL容器?

WBOY
WBOY原創
2024-06-05 18:29:01407瀏覽

要遍歷 STL 容器,可以使用容器的 begin() 和 end() 函數來取得迭代器範圍:向量:使用 for 迴圈遍歷迭代器範圍。鍊錶:使用 next() 成員函數遍歷鍊錶元素。映射:取得鍵值對迭代器,使用 for 迴圈遍歷。

如何遍历C++ STL容器?

如何遍歷C++ STL 容器

#遍歷C++ 標準模版庫(STL) 容器是程式設計師日常工作中必不可少的一項任務。 STL 提供了一系列預定義資料結構,如向量、鍊錶和映射,每個結構都有自己的遍歷方法。

遍歷STL 向量

要遍歷一個向量,我們可以使用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;
}

輸出:

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3

以上是如何遍歷C++ STL容器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn