Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ersetze ich Elemente im C++-STL-Container?

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

WBOY
WBOYOriginal
2024-06-05 16:45:011149Durchsuche

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 in std::vectorstd::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::mapstd::unordered_map 中的元素

对于 std::mapstd::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

Für 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!

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