Computer >> Máy Tính >  >> Lập trình >> C ++

hàm multimap swap () trong C ++ STL


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 đề . swap () được sử dụng để hoán đổi nội dung của hai vùng chứa nhiều bản đồ. Hàm này hoán đổi giá trị của hai vùng chứa nhiều bản đồ bất kể kích thước của cả vùng chứa nhiều bản đồ.

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