Heim >Backend-Entwicklung >C++ >Wie greife ich auf Elemente im C++-STL-Container zu?

Wie greife ich auf Elemente im C++-STL-Container zu?

WBOY
WBOYOriginal
2024-06-05 18:04:511163Durchsuche

Wie greife ich auf Elemente im C++-STL-Container zu? Es gibt mehrere Möglichkeiten: Durchlaufen Sie den Container: Verwenden Sie eine bereichsbasierte Iterator-for-Schleife, um auf bestimmte Elemente zuzugreifen: Verwenden Sie einen Index (Indexoperator []) Verwenden Sie einen Schlüssel (std::map oder std::unordered_map)

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

So greifen Sie auf Elemente in C++-STL-Containern zu

Die C++-Standardvorlagenbibliothek (STL) bietet verschiedene Container für die effiziente Speicherung und Verwaltung von Daten. Für die effektive Nutzung der STL ist es wichtig zu verstehen, wie auf Elemente in diesen Containern zugegriffen wird.

Einen Container durchqueren

Es gibt die folgenden Methoden, um einen Container zu durchqueren und auf seine Elemente zuzugreifen:

  • Iteratoren: STL stellt Iteratoren bereit, die nacheinander auf Elemente in einem Container zugreifen können.
// 使用迭代器遍历 vector
vector<int> v = {1, 2, 3};
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << *it << endl;
}
  • Bereichsbasierte for-Schleife: C++11 führt eine bereichsbasierte for-Schleife ein, wodurch das Durchlaufen von Containern prägnanter wird.
// 使用基于范围的 for 循环遍历 vector
vector<int> v = {1, 2, 3};
for (int& x : v) {
  cout << x << endl;
}

Zugriff auf bestimmte Elemente

Zusätzlich zum Durchlaufen des Containers können Sie auch direkt über Index oder Schlüssel auf bestimmte Elemente zugreifen:

  • Index: Sie können den Indexoperator ([]) verwenden, um auf den Index zuzugreifen die Containerelemente.
// 使用下标访问 vector 中的元素
vector<int> v = {1, 2, 3};
cout << v[0] << endl; // 输出 1
  • Schlüssel: Wenn der Container Schlüssel zum Speichern von Elementen verwendet, können Sie [] in <code>std::map oder std::unordered_map verwenden -Operator oder at()-Methode. 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};

Praktischer Fall

Angenommen, wir haben einen std::vector, der Schülernoten speichert:

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

So greifen Sie auf diese Elemente zu und ändern sie mithilfe einer bereichsbasierten for-Schleife:

rrreee🎜 Fazit 🎜🎜Zu verstehen, wie auf Elemente in C++-STL-Containern zugegriffen wird, ist für die effektive Nutzung dieser Container von entscheidender Bedeutung. Abhängig vom verwendeten Containertyp können Sie Iteratoren, bereichsbasierte For-Schleifen, Indexoperatoren oder Schlüssel verwenden. 🎜

Das obige ist der detaillierte Inhalt vonWie greife ich auf Elemente im C++-STL-Container zu?. 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