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

map emplace () 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 () 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 () là gì?

Bản đồ ::emplace () 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ử vào vùng chứa bản đồ được liên kết.

emplace () 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ó cùng khóa của giá trị sẽ được chèn. Hàm này hoạt động giống như insert () sao chép và di chuyển đối tượng hiện có vào vùng chứa.

Nếu phần tử được chèn thành công, kích thước của vùng chứa sẽ tăng lên 1

Cú pháp

map_name.emplace(Args&& args);

Tham số

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

args - Các đối số hoặc giá trị mà chúng tôi muốn được thay thế hoặc chèn vào.

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.

Đầu vào

map<char, int> newmap;
emplace( ‘a’, 1);

Đầu ra

a

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.emplace(4, 50);
   TP_Map.emplace(2, 30);
   TP_Map.emplace(1, 10);
   TP_Map.emplace(1, 20);
   TP_Map.emplace(1, 30);
   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