Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggantikan elemen dalam bekas C++ STL?

Bagaimana untuk menggantikan elemen dalam bekas C++ STL?

WBOY
WBOYasal
2024-06-05 16:45:011153semak imbas

Kaedah menggantikan elemen dalam bekas STL adalah seperti berikut: std::vector: use at() atau [] operator; ] simbol operator.

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

Cara menggantikan elemen dalam bekas C++ STL

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::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

Untuk 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 nama, kemudian mengulangi elemen satu demi satu dan menggantikannya dengan rentetan yang diubah suai, termasuk kedudukan dan nama. Hasil akhir ialah senarai nama mengikut abjad, didahului dengan pangkatnya. 🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn