Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mengakses elemen dalam bekas C++ STL?

Bagaimana untuk mengakses elemen dalam bekas C++ STL?

WBOY
WBOYasal
2024-06-05 18:04:511164semak imbas

Bagaimana untuk mengakses elemen dalam bekas C++ STL? Terdapat beberapa cara untuk melakukan ini: Melintasi bekas: gunakan julat berasaskan julat untuk gelung untuk mengakses elemen tertentu: gunakan indeks (pengendali subskrip []) gunakan kekunci (std::map atau std::unordered_map)

如何访问C++ STL容器中的元素?

Cara Akses elemen dalam bekas C++ STL

Pustaka Templat Standard (STL) C++ menyediakan pelbagai bekas untuk penyimpanan dan pengurusan data yang cekap. Memahami cara mengakses elemen dalam bekas ini adalah penting untuk menggunakan STL dengan berkesan.

Melintasi bekas

Terdapat kaedah berikut untuk melintasi kontena dan mengakses elemennya:

  • Iterators: STL menyediakan iterator yang boleh mengakses elemen dalam bekas secara berurutan.
// 使用迭代器遍历 vector
vector<int> v = {1, 2, 3};
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << *it << endl;
}
  • Berasaskan julat untuk gelung: C++11 memperkenalkan berasaskan julat untuk gelung, menjadikan bekas merentasi lebih ringkas.
// 使用基于范围的 for 循环遍历 vector
vector<int> v = {1, 2, 3};
for (int& x : v) {
  cout << x << endl;
}

Akses elemen khusus

Selain melintasi bekas, anda juga boleh terus mengakses elemen tertentu mengikut indeks atau kunci:

  • Indeks: Anda boleh menggunakan operator subskrip ([]) untuk mengakses indeks dalam unsur-unsur bekas.
// 使用下标访问 vector 中的元素
vector<int> v = {1, 2, 3};
cout << v[0] << endl; // 输出 1
  • Kunci: Jika bekas menggunakan kunci untuk menyimpan elemen, anda boleh menggunakan [] dalam <code>std::map atau std::unordered_map kaedah pengendali atau at(). std::mapstd::unordered_map 中的 [] 运算符或 at() 方法。
// 使用键访问 map 中的元素
map<string, int> m;
m["John"] = 30;
cout << m["John"] << endl; // 输出 30

实战案例

假设我们有一个存储学生成绩的 std::vector

vector<int> grades = {90, 85, 95, 88};

Kes praktikal

Andaikan kita mempunyai std::vector yang menyimpan gred pelajar:

// 使用基于范围的 for 循环遍历和修改 vector
for (int& grade : grades) {
  // 将每个成绩增加 5
  grade += 5;
}

Berikut ialah cara untuk mengakses dan mengubah suai elemen ini menggunakan gelung berasaskan julat:

rrreee🎜 Kesimpulan 🎜🎜Memahami cara mengakses elemen dalam bekas C++ STL adalah penting untuk menggunakan bekas ini dengan berkesan. Anda boleh menggunakan iterator, berasaskan julat untuk gelung, operator subskrip atau kekunci, bergantung pada jenis bekas yang anda gunakan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengakses elemen dalam 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