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

multimap ::emplace_hint () 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 ::emplace_hint () 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 ::emplace_hint () là gì?

Hàm emplace_hint () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . Hàm này sẽ chèn một phần tử mới vào vùng chứa nhiều bản đồ với một vị trí. Trong emplace_hint (), chúng ta truyền phần tử với một vị trí, vị trí đóng vai trò như một gợi ý. Hàm này tương tự như emplace () sự khác biệt là chúng ta đưa ra một gợi ý vị trí để chèn giá trị. Chức năng này cũng làm tăng kích thước của vùng chứa nhiều bộ lên 1.

Cú pháp

multimap_name.emplace_hint(iterator pos, Args& val);

Tham số

Hàm chấp nhận (các) tham số sau -

  • pos - Đây là kiểu đối số lặp được sử dụng để cung cấp gợi ý vị trí.

  • val - Đây là phần tử mà chúng tôi muốn chèn.

Giá trị trả về

Hàm này trả về một trình lặp đến vị trí của phần tử được thay thế / chèn vào.

Đầu vào

std::multimap<char, int> odd, eve;
odd.insert({‘a’, 1});
odd.insert({‘b’, 3});
odd.insert({‘c’, 5});
odd.emplace_hint(odd.end(), {‘d’, 7});

Đầu ra

Odd: a:1 b:3 c:5 d:7

Ví dụ

Code:
#include <bits/stdc++.h>
using namespace std;
int main(){
   //create the container
   multimap<int, int> mul;
   //insert using emplace
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 3, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 4, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   cout << "\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.begin(); i!= mul.end(); i++){
      cout << i->first << "\t" << i->second << endl;
   }
   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 40
1 10
2 20
3 30
4 50
5 60