Hướng dẫn cách sao chép và hoán đổi unordered_map trong C++ Bạn sẽ học được cách sao chép một unordered_map vào một unordered_map khác, cũng như cách hoán đổi 2 unordered_map cho nhau trong C++ sau bài học này.
Sao chép unordered_map trong C++
unordered_map trong C++ thuộc kiểu dữ liệu đối tượng, do vậy khác với các kiểu dữ liệu nguyên thủy, chúng ta không thể sử dụng toán tử bằng =
để gán và sao chép một unordered_map vào một unordered_map mới.
Thay vào đó, chúng ta sẽ sử dụng cách copy constructor trong unordered_map với cú pháp như sau:
std::unordered_map<k_type, v_type>
mp_des( mp_src );
Trong đó type
là kiểu dữ liệu, st_src
là unordered_map nguồn để copy và st_dest
là unordered_map đích dùng để dán kết quả sao chép.
Ví dụ cụ thể:
|
Kết quả:
Orginary unordered_map |
Hoán đổi 2 unordered_map trong C++
unordered_map swap trong C++ là một hàm thành viên trong class std:unordered_map, có tác dụng hoán đổi 2 unordered_map trong C++.
Hàm swap sẽ hoán đổi toàn bộ nội dung của 2 unordered_map đã cho cho nhau và làm thay đổi nội dung cũng như độ dài của chúng.
Cú pháp hàm unordered_map swap để hoán đổi 2 unordered_map trong C++ như sau:
st1.swap(st2);
Trong đó st1
và st2
là 2 unordered_map cần hoán đổi nội dung cho nhau.
Ví dụ cụ thể:
|
Kết quả:
Before swap |
Ngoài cách dùng hàm unordered_map swap, chúng ta cũng có thể dùng function template là std::swap để tiến hành hoán đổi 2 unordered_map với nhau, cũng như là để hoán đổi các đối tượng khác như unordered_map, vector trong C++.
Lưu ý chúng ta cần phải thêm header file utility vào trong chương trình để có thể sử dụng được function template này
Ví dụ, chúng ta dùng std::swap để hoán đổi 2 unordered_map trong C++ như sau:
|
Và chúng ta thu về kết quả hoán đổi tương tự:
Before swap |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách sao chép và hoán đổi unordered_map trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.
URL Link
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>26. unordered_map trong c++