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

ánh xạ chức năng 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à các ví dụ của hàm map ::emplace_hint () trong C ++ STL.

Bản đồ trong C ++ STL là gì?

Bản đồ là vùng chứa liên kết, 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 giá trị khóa và giá trị được ánh xạ theo một thứ tự cụ thể. Trong vùng chứa bản đồ, 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. Các giá trị trong vùng chứa bản đồ được truy cập bằng các khóa duy nhất của nó.

Bản đồ ::emplace_hint () là gì?

Bản đồ ::emplace_hint () là một hàm nằm trong tệp tiêu đề . Hàm này tạo và chèn một phần tử có gợi ý vào vùng chứa bản đồ được liên kết.

emplace_hint () sẽ chèn phần tử mới nếu khóa của phần tử sẽ được thay thế là duy nhất. Việc chèn chỉ xảy ra nếu không có phần tử nào có khóa của giá trị sẽ được chèn.

Cú pháp

map_name.emplace_hint(iterator it, Args&& args);

Tham số

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

it - Một trình lặp có thể được coi là gợi ý về vị trí của phần tử sẽ được chèn vào.

args - Các đối số hoặc giá trị mà chúng tôi muốn thay thế ở vị trí "nó".

Giá trị trả về

Nếu việc chèn thành công thì hàm trả về trình vòng lặp trỏ đến phần tử mới được chèn. Nếu không, nó trả về trình vòng lặp về giá trị tương đương đã có trong vùng chứa.

Ví dụ

Đầu vào

map<char, int> newmap;
emplace_hint(newmap.end(), ‘a’, 1);

Đầu ra

a

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.emplace_hint(TP_Map.begin(), 4, 50);
   TP_Map.emplace_hint(TP_Map.begin(), 2, 30);
   TP_Map.emplace_hint(TP_Map.begin(), 1, 10);
   cout<<"TP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++)
      cout << i->first << "\t" << i->second << endl;
   return 0;
}

Đầu ra

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
4             50