Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengulangi bekas C++ STL?

Bagaimana untuk mengulangi bekas C++ STL?

WBOY
WBOYasal
2024-06-05 18:29:01351semak imbas

Untuk lelaran ke atas bekas STL, anda boleh menggunakan fungsi begin() dan end() bekas untuk mendapatkan julat lelaran: Vektor: Gunakan gelung for untuk lelaran ke atas julat lelaran. Senarai terpaut: Gunakan fungsi ahli seterusnya() untuk melintasi elemen senarai terpaut. Pemetaan: Dapatkan lelaran pasangan nilai kunci dan gunakan gelung for untuk melintasi.

如何遍历C++ STL容器?

Cara melintasi bekas C++ STL

Merentasi bekas Perpustakaan Templat Standard (STL) C++ ialah tugas penting dalam kerja harian pengaturcara. STL menyediakan satu siri struktur data yang dipratentukan seperti vektor, senarai terpaut dan peta, masing-masing dengan kaedah traversalnya sendiri.

Merentasi vektor STL

Untuk melelaran ke atas vektor, kita boleh menggunakan fungsi begin() dan end() untuk mendapatkan julat iterator: 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;
}

Output :

Apple: 1
Banana: 2
Cherry: 3

Apple: 1
Banana: 2
Cherry: 3

Lintas senarai terpaut STL🎜🎜Untuk melintasi senarai terpaut, kita boleh menggunakan fungsi depan() dan back() senarai terpaut dan seterusnya() Fungsi ahli: 🎜rrreee🎜🎜Output: 🎜🎜rrreee🎜Merentasi pemetaan STL🎜🎜Untuk melintasi pemetaan, kita boleh menggunakan begin()pemetaan > dan end() code> Fungsi mendapat lelaran pasangan nilai kunci: 🎜rrreee🎜🎜Output: 🎜🎜rrreee

Atas ialah kandungan terperinci Bagaimana untuk mengulangi bekas C++ STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn