Bagaimana untuk menggantikan elemen dalam bekas C++ STL?

WBOY
Lepaskan: 2024-06-05 16:45:01
asal
1125 orang telah melayarinya

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
Salin selepas log masuk

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"
Salin selepas log masuk

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
Salin selepas log masuk

实战案例

假设我们有一个 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];
}
Salin selepas log masuk

在这个例子中,我们对 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!