Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và ví dụ của hàm multimap swap () trong C ++ STL.
Multimap trong C ++ STL là gì?
Multimaps là các vùng chứa kết hợp, tương tự như vùng chứa bản đồ. Nó cũng tạo điều kiện để lưu trữ các phần tử được hình thành bởi sự kết hợp của khóa-giá trị và giá trị được ánh xạ theo một thứ tự cụ thể. Trong một vùng chứa nhiều bản đồ có thể có nhiều phần tử được liên kết với cùng một khóa. Dữ liệu luôn được sắp xếp nội bộ với sự trợ giúp của các khóa liên quan.
Multimap swap () là gì?
Hàm multimap ::swap () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề
Khi hàm này được gọi, nó sẽ nhận tham số là một vùng chứa đa bản đồ khác và hoán đổi nội dung với vùng chứa được liên kết.
Cú pháp
multimap_name.swap(multimap& multimap_name2);
Tham số
Hàm chấp nhận (các) tham số sau -
-
map_name2 - Đây là một đối tượng khác của vùng chứa nhiều bản đồ có dữ liệu mà chúng tôi muốn hoán đổi với vùng chứa nhiều bản đồ được liên kết.
Giá trị trả về
Hàm này không trả về gì.
Đầu vào
std::multimap<char, int> odd, eve; odd.insert(make_pair(‘a’, 1)); odd.insert(make_pair(‘b’, 3)); odd.insert(make_pair(‘c’, 5)); eve.insert(make_pair(‘d’, 2)); eve.insert(make_pair(‘e’, 4)); eve.insert(make_pair(‘f’, 6)); odd.swap(eve);
Đầu ra
Odd: d: 2 e:4 f:6 Eve: a:1 b:3 c:5
Ví dụ
#include<iostream> #include<map> using namespace std; int main(){ multimap<int,int > mul_1; multimap<int,int> mul_2; //declaring iterator to traverse the elements multimap<int,int>:: iterator i; //inserting elements to multimap1 mul_1.insert({1,10}); mul_1.insert({2,20}); mul_1.insert({3,30}); mul_1.insert({4,40}); mul_1.insert({5,50}); //inserting elements to multimap2 mul_2.insert({6,60}); mul_2.insert({7,70}); mul_2.insert({8,80}); mul_2.insert({9,90}); //calling swap to swap the elements mul_1.swap(mul_2); //elements of multimap1 cout<<"Elements in multimap1 are: "<<"\n"; for( i = mul_1.begin(); i!= mul_1.end(); i++){ cout<<(*i).first<<" "<< (*i).second << "\n"; } //elements of multimap2 cout<<"\nElements in multimap2 are: "; for( i = mul_2.begin(); i!= mul_2.end(); i++){ cout<<(*i).first<<" "<<(*i).second << "\n"; } }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Elements in multimap1 are: 6 60 7 70 8 80 9 90 Elements in multimap2 are: 1 10 2 20 3 30 4 40 5 50