Wie ersetze ich Elemente im C++-STL-Container?

WBOY
Freigeben: 2024-06-05 16:45:01
Original
1090 Leute haben es durchsucht

Die Methode zum Ersetzen von Elementen in einem STL-Container ist wie folgt: std::vector: verwenden Sie den Operator at() oder []; std::list: Zugriff auf Elemente über den Iterator std::unordered_map: verwenden Sie [; ] Operatorsymbol.

如何替换C++ STL容器中的元素?

So ersetzen Sie Elemente im C++-STL-Container

In der C++-Standardvorlagenbibliothek (STL) gibt es verschiedene Container, die Elemente speichern und bearbeiten können. Das Ersetzen eines Elements an einer bestimmten Stelle in einem Container ist eine häufige Aufgabe. So ersetzen Sie Elemente in verschiedenen STL-Containertypen:

1. Ersetzen Sie Elemente instd::vectorstd::vector中的元素

对于std::vector,可以使用at()[]运算符访问和修改特定的元素。

// 使用 at() std::vector vec{1, 2, 3, 4, 5}; vec.at(2) = 10; // 替换 vec[2] 为 10 // 使用 [] vec[3] = 20; // 替换 vec[3] 为 20
Nach dem Login kopieren

2. 替换std::list中的元素

对于std::list,可以使用iterator访问和修改元素。

std::list lst{"a", "b", "c", "d", "e"}; auto it = std::next(lst.begin(), 2); // 迭代器指向 lst[2] *it = "z"; // 替换 lst[2] 为 "z"
Nach dem Login kopieren

3. 替换std::mapstd::unordered_map中的元素

对于std::mapstd::unordered_map,可以使用[]运算符来访问和修改特定的元素。

// std::map std::map mp{ {"a", 1}, {"b", 2}, {"c", 3} }; mp["a"] = 10; // 替换 mp["a"] 为 10 // std::unordered_map std::unordered_map ump{ {"a", 1}, {"b", 2}, {"c", 3} }; ump["a"] = 10; // 替换 ump["a"] 为 10
Nach dem Login kopieren

实战案例

假设我们有一个std::vector,其中存储了学生的姓名,我们需要按字母顺序重新排序姓名。我们可以使用 STL 的std::sort()函数来排序容器,并使用at()函数替换元素以符合排序后的顺序。

std::vector names{"John", "Alice", "Bob", "Mary", "David"}; std::sort(names.begin(), names.end()); for (int i = 0; i < names.size(); ++i) { names.at(i) = std::to_string(i + 1) + ". " + names[i]; }
Nach dem Login kopieren

在这个例子中,我们对names

Für std::vector, spezifisch Auf Elemente kann mit den Operatoren at()oder []zugegriffen und diese geändert werden. rrreee2. Ersetzen Sie Elemente in std::listFür std::listkönnen Sie iteratorverwenden Auf Elemente zugreifen und diese ändern. rrreee3. Ersetzen Sie Elemente in std::mapund std::unordered_mapFür std::mapund std::unordered_mapkönnen Sie den Operator []verwenden, um auf bestimmte Elemente zuzugreifen und diese zu ändern. rrreeePraktischer FallAngenommen, wir haben einen std::vector, der die Namen der Schüler speichert, und wir müssen die Namen in alphabetischer Reihenfolge neu anordnen. Wir können die Funktion std::sort()von STL verwenden, um den Container zu sortieren, und die Funktion at(), um Elemente so zu ersetzen, dass sie der sortierten Reihenfolge entsprechen. rrreeeIn diesem Beispiel sortieren wir den names-Container, durchlaufen dann die Elemente nacheinander und ersetzen sie durch die geänderte Zeichenfolge, einschließlich Position und Name. Das Endergebnis ist eine alphabetische Liste der Namen mit vorangestelltem Rang.

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!