Hướng dẫn cách thêm chèn phần tử vào multimap trong C++. Bạn sẽ học được cách dùng hàm insert và và emplace để thêm chèn phần tử vào multimap trong C++ sau bài học này.
Sự khác biệt khi thêm chèn phần tử vào multimap với các container khác
Để thêm chèn phần tử vào multimap trong C++, chúng ta sử dụng tới hàm thành viên insert() hoặc emplace(). Do khi chèn phần tử vào multimap thì vị trí chèn sẽ được tự động quyết định tùy thuộc vào bộ sắp xếp trong multimap, nên lưu ý khác với các containers khác như list hay vector thì trong multimap không tồn tại các hàm push_back() hay push_front() để thêm phần tử vào đầu hay cuối multimap.
Và khác với map thì trong multimap cũng không tồn tại toán tử [] nên chúng ta chỉ có thể dùng 2 hàm thành viên ở trên để thêm chèn phần tử mà thôi.
Thêm chèn 1 phần tử vào multimap trong C++ bằng hàm insert
Hàm insert là một hàm thành viên trong class std:multimap, có tác dụng chèn một hoặc nhiều phần tử vào multimap cũng như tăng độ dài tương ứng của nó.
Để chèn 1 phần tử vào trong multimap C++, chúng ta sử dụng hàm insert kết hợp với hàm pair() với cú pháp sau đây:
mp.insert(std::pair<k_type,x_type>(k,v));
Trong đó
mp
là multimap ban đầupair<k_type,x_type>(k,v)
sử dụng để chỉ định key và value của phần tử cần thêm, trong đók_type,x_type
là kiểu vàk,v
là key và value.
Trong trường hợp không rõ kiểu, hoặc muốn rút bỏ chỉ định kiểu của key và value, chúng ta có thể dùng hàm make_pair() để thay thế cho pair() trong hàm insert, với cú pháp sau đây:
mp.insert(std::make_pair(k,v));
Hàm multimap insert sẽ trả về một trình lặp trỏ tới vị trí phần tử vừa được chèn vào.
Lại nữa, phần tử trong multimap được sắp xếp theo thứ tự cụ thể trước khi được lưu, nên các phần tử cần chèn thêm vào multimap sẽ được tự động quyết định vị trí dựa trên bộ sắp xếp, và chúng ta sẽ không quyết định được vị trí cần chèn của phần tử.
Ví dụ cụ thể:
|
Kết quả:
a: 10 b: 20 c: 30 |
Chúng ta cũng có thể lấy vị trí đã chèn của phần tử vào multimap bằng trình lặp thu về từ hàm, rồi truy xuất nó thông qua trình lặp như sau:
|
Kết quả:
x => 50 |
Thêm chèn 1 phần tử vào multimap trong C++ bằng hàm emplace
Hàm emplace là một hàm thành viên trong class std:multimap, có tác dụng chèn một hoặc nhiều phần tử vào multimap thông qua hàm tạo của kiểu dữ liệu, cũng như tăng độ dài tương ứng của multimap.
Để chèn thêm 1 phần tử vào trong multimap C++, chúng ta sử dụng hàm emplace với cú pháp sau đây:
mp.emplace(k,v);
Trong đó
mp
là multimap ban đầuk,v
là key và value.
Hàm multimap emplace sẽ trả về một trình lặp trỏ tới vị trí phần tử vừa được chèn vào.
Lại nữa, phần tử trong multimap được sắp xếp theo thứ tự cụ thể trước khi được lưu, nên các phần tử cần chèn thêm vào multimap sẽ được tự động quyết định vị trí dựa trên bộ sắp xếp, và chúng ta sẽ không quyết định được vị trí cần chèn của phần tử.
Ví dụ cụ thể:
|
Kết quả:
a:10 b:20 c:30 |
Chèn nhiều phần tử vào multimap trong C++ bằng hàm insert
Để chèn nhiều phần tử vào trong multimap C++, chúng ta sử dụng hàm insert với cú pháp sau đây:
mp.insert(iterator_first, iterator_last);
Trong đó
mp
là multimap ban đầuiterator_first
vàiterator_last
là các trình lặp xác định phạm vi chứa các phần tử cần chèn ở trong một multimap khác vào multimap ban đầu.
Lưu ý ở đây, các phần tử cần chèn được lấy ra từ một phạm vi trong một multimap khác, và phạm vi này được chỉ định thông qua 2 trình lặp như trên
Ví dụ cụ thể:
|
Và kết quả:
mp1= 1: a 2: b 3: c 4: d 5: e |
Có thể thấy các phần tử từ đầu cho tới phần tử có key bằng 4 trong mp1 đã được copy và chèn vào mp2 như trên.
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách thêm chèn chèn phần tử vào multimap 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
https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/multimap-trong-cpp/them-chen-multimap-trong-cpp/
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>25. multimap trong c++