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

multimap insert () 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 ::insert () 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 thuận lợi để 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 ::insert () là gì?

multimap ::insert () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . insert () được sử dụng để chèn các giá trị mới vào vùng chứa multimap và tăng kích thước của vùng chứa theo số lượng phần tử được chèn.

Không giống như vùng chứa bản đồ kiểm tra khóa được liên kết đã có sau đó sẽ không chèn các phần tử nhưng multimap có tính năng liên kết nhiều phần tử với cùng một khóa.

Vì vậy, bất cứ khi nào chúng ta chèn một phần tử, nó sẽ đến vị trí tương ứng theo khóa của nó.

Cú pháp

multiMap_name.insert({key& k, value_type& val});

hoặc

multiMap_name.insert(iterator& it, {key& k, value_type& val});

hoặc

multiMap_name.insert(iterator& position1, iterator& position2);

hoặc

multimap_name.insert(initializer_list <value_type> il);

Tham số

Hàm này chấp nhận tham số sau -

  • k - Đây là khóa được liên kết với phần tử. Hàm kiểm tra xem khóa đã có trong vùng chứa hay chưa thì nó sẽ không chèn phần tử vào.

  • val - Giá trị sẽ được chèn vào.

  • - Loại giá trị của trình lặp được sử dụng để cung cấp vị trí mà chúng ta muốn phần tử được chèn vào.

  • vị trí 1, vị trí 2 - Vị trí1 là vị trí bắt đầu và vị trí 2 là vị trí kết thúc khi chúng ta muốn chèn chuỗi phần tử, chúng ta có thể sử dụng dải ô gồm nhiều phần tử mà chúng tôi muốn chèn.

  • il - Đây là danh sách trình khởi tạo chứa các phần tử mà chúng tôi muốn khởi tạo vào vùng chứa.

Giá trị trả về

Hàm này trả về một trình lặp cho phần tử mới được chèn vào vùng chứa bản đồ.

Đầu vào

mutlimap<int, char> mymap;
mymap.insert(1, ‘a’);
mymap.insert(2, ‘b’);

Đầu ra

1: a
2: b

Ví dụ

// chèn tại một vị trí nhất định với một khóa nhất định

#include <bits/stdc++.h>
using namespace std;
int main(){
   multimap<int, int> mul;
   //inserting elements in multimap
   mul.insert({ 1, 10 });
   mul.insert({ 2, 20 });
   mul.insert({ 3, 30 });
   mul.insert({ 4, 40 });
   mul.insert({ 5, 50 });
   //displaying multimap elements
   cout << "Elements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto it = mul.begin(); it!= mul.end(); ++it){
      cout << it->first << '\t' << it->second << '\n';
   }
   return 0;
}

Đầ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 multimap is :
KEY ELEMENT
1 10
2 20
3 30
4 40
5 50

Ví dụ

//inserting the element after the given key
#include <bits/stdc++.h>
using namespace std;
int main(){
   multimap<int, int> mul;
   //inserting elements in multimap
   mul.insert({ 1, 10 });
   mul.insert({ 2, 20 });
   mul.insert({ 3, 30 });
   mul.insert({ 5, 40 });
   mul.insert({ 6, 50 });
   //finding the element after which we will insert
   auto i = mul.find(3);
   mul.insert(i, { 4, 90 });
   // print the elements
   cout << "KEY\tELEMENT\n";
   for (auto itr = mul.begin(); itr!= mul.end(); ++itr){
      cout << itr->first << '\t' << itr->second << '\n';
   }
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

KEY ELEMENT
1 10
2 20
3 30
4 90
5 40
6 50