Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menggantikan elemen dalam bekas C++ STL?
Kaedah menggantikan elemen dalam bekas STL adalah seperti berikut: std::vector: use at() atau [] operator; ] simbol operator.
Dalam C++ Standard Template Library (STL), terdapat pelbagai bekas yang boleh menyimpan dan memanipulasi elemen. Menggantikan elemen di lokasi tertentu dalam bekas adalah tugas biasa. Begini cara untuk menggantikan elemen dalam jenis bekas STL yang berbeza:
1 Gantikan elemen dalam 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
, khusus. elemen boleh diakses dan diubah suai menggunakan pengendali at()
atau []
. 🎜rrreee🎜🎜2 Gantikan elemen dalam std::list
🎜🎜Untuk std::list
, anda boleh menggunakan iterator
. Akses dan ubah suai elemen. 🎜rrreee🎜🎜3 Gantikan elemen dalam std::map
dan std::unordered_map
🎜🎜Untuk std::map
. dan std::unordered_map
, anda boleh menggunakan operator []
untuk mengakses dan mengubah suai elemen tertentu. 🎜rrreee🎜🎜Kes Praktikal🎜🎜 Katakan kita mempunyai std::vector
yang menyimpan nama pelajar dan kita perlu menyusun semula nama dalam susunan abjad. Kita boleh menggunakan fungsi std::sort()
STL untuk mengisih bekas dan fungsi at()
untuk menggantikan elemen agar sepadan dengan susunan yang diisih. 🎜rrreee🎜Dalam contoh ini, kami mengisih bekas Atas ialah kandungan terperinci Bagaimana untuk menggantikan elemen dalam bekas C++ STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!