Heim > Artikel > Backend-Entwicklung > Wie ersetze ich Elemente im C++-STL-Container?
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.
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 in std::vector
std::vector
中的元素
对于 std::vector
,可以使用 at()
或 []
运算符访问和修改特定的元素。
// 使用 at() std::vector<int> vec{1, 2, 3, 4, 5}; vec.at(2) = 10; // 替换 vec[2] 为 10 // 使用 [] vec[3] = 20; // 替换 vec[3] 为 20
2. 替换 std::list
中的元素
对于 std::list
,可以使用 iterator
访问和修改元素。
std::list<std::string> lst{"a", "b", "c", "d", "e"}; auto it = std::next(lst.begin(), 2); // 迭代器指向 lst[2] *it = "z"; // 替换 lst[2] 为 "z"
3. 替换 std::map
和 std::unordered_map
中的元素
对于 std::map
和 std::unordered_map
,可以使用 []
运算符来访问和修改特定的元素。
// std::map std::map<std::string, int> mp{ {"a", 1}, {"b", 2}, {"c", 3} }; mp["a"] = 10; // 替换 mp["a"] 为 10 // std::unordered_map std::unordered_map<std::string, int> ump{ {"a", 1}, {"b", 2}, {"c", 3} }; ump["a"] = 10; // 替换 ump["a"] 为 10
实战案例
假设我们有一个 std::vector
,其中存储了学生的姓名,我们需要按字母顺序重新排序姓名。我们可以使用 STL 的 std::sort()
函数来排序容器,并使用 at()
函数替换元素以符合排序后的顺序。
std::vector<std::string> 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]; }
在这个例子中,我们对 names
std::vector
, spezifisch Auf Elemente kann mit den Operatoren at()
oder []
zugegriffen und diese geändert werden. 🎜rrreee🎜🎜2. Ersetzen Sie Elemente in std::list
🎜🎜Für std::list
können Sie iterator
verwenden Auf Elemente zugreifen und diese ändern. 🎜rrreee🎜🎜3. Ersetzen Sie Elemente in std::map
und std::unordered_map
🎜🎜Für std::map
und std::unordered_map
können Sie den Operator []
verwenden, um auf bestimmte Elemente zuzugreifen und diese zu ändern. 🎜rrreee🎜🎜Praktischer Fall🎜🎜Angenommen, 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. 🎜rrreee🎜In 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!