Hướng dẫn cách duyệt unordered_map trong C++. Bạn sẽ học được 2 cách căn bản để duyệt unordered_map trong C++ sau bài học này.
Trong bài unordered_map trong C++ chúng ta đã biết các phần tử trong unordered_map được xác định thông qua key của chúng chứ không phải là bằng index như các containers khác trong C++ như list vector. Do đó chúng ta cũng không thể sử dụng index của các phần tử để truy cập vào phần tử của unordered_map theo cách thông thường được.
Thay vào đó thì chúng ta có 2 phương pháp duyệt unordered_map trong C++ như sau:
- Sử dụng vòng lặp dựa trên phạm vi
- Sử dụng iterator
Duyệt unordered_map trong C++ bằng vòng lặp dựa trên phạm vi
Có rất nhiều thứ tiện lợi đã được thêm vào trong C++, và một trong số đó chính là vòng lặp dựa trên phạm vi.
Bằng cách sử dụng vòng lặp dựa trên phạm vi, chúng ta có thể duyệt unordered_map trong C++ với cú pháp như sau:
for ( auto& x : mp) {
cout << x.first << “:” << x.second << endl;
}
Trong đó:
mp
là tên unordered_map.auto
là kiểu suy luận giúp tự xác định kiểu dữ liệu của giá trị lấy từ unordered_map.x
là tên một biến dùng để gán từng phần tử được lấy từ unordered_map.x.first
vàx.second
lần lượt được sử dụng để lấy key và value của phần tử
Ví dụ cụ thể:
|
Kết quả:
gamma:30 |
Duyệt unordered_map trong C++ bằng iterator
Trong C++, các kiểu dữ liệu như vector, unordered_map, unordered_map đều được thêm một chức năng là iterator nhằm giúp biến chúng thành các trình lặp để dễ dàng xử lý.
Bằng cách sử dụng iterator, chúng ta có thể duyệt unordered_map trong C++ với cú pháp như sau:
for(auto itr = mp.begin(); itr != mp.end(); ++itr) {
cout << itr->first << ":"<< itr->second << "\n";
}
Trong đó:
mp
là tên unordered_mapitr
là tên iterator dùng để trỏ đến phần tửitr->first
vàitr->second
lần lượt được sử dụng để lấy key và value của phần tử
Ví dụ cụ thể:
|
Và kết quả thu về cũng tương tự với phương pháp duyệt unordered_map bằng vòng lặp dựa trên phạm vi ở trên:
gamma:30 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách duyệt 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++