Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm map::insert() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của hàm map::insert() trong C++ STL.

Map trong C++ STL là gì?

Map là container liên hợp, cho phép lưu trữ các phần tử được hình thành từ tổ hợp khóa (key) và giá trị ánh xạ (mapped value) theo một thứ tự xác định. Trong container map, dữ liệu luôn được sắp xếp nội bộ nhờ các khóa liên kết. Các giá trị trong map được truy xuất bằng khóa duy nhất của chúng.

map::insert() là gì?

map::insert() là hàm built-in trong C++ STL, được định nghĩa trong header . Hàm insert() dùng để chèn giá trị mới vào container map và tăng kích thước container lên số lượng phần tử chèn vào.

Vì các khóa trong container map là duy nhất, thao tác chèn kiểm tra xem mỗi phần tử cần chèn có khóa đã tồn tại trong container hay không, nếu có thì phần tử không được chèn.

Ngoài ra, container map duy trì tất cả các phần tử theo khóa của chúng theo thứ tự tăng dần. Vì vậy, mỗi khi chèn một phần tử, nó sẽ đi đến vị trí tương ứng theo khóa của nó.

Cú pháp

1. Map_name.insert({key& k, value_type& val}); hoặc 2. Map_name.insert(iterator& it, {key& k, value_type& val}); hoặc 3. Map_name.insert(iterator& position1, iterator& position2);

Tham số

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

  • k – Khóa liên kết với phần tử. Hàm kiểm tra nếu khóa đã có trong container thì không chèn phần tử.

  • val – Giá trị cần chèn.

  • it – Iterator kiểu giá trị dùng để chỉ vị trí muốn chèn phần tử.

  • position1, position2 – position1 là vị trí bắt đầu, position2 là vị trí kết thúc khi muốn chèn dãy phần tử, có thể dùng phạm vi nhiều phần tử cần chèn.

Giá trị trả về

Hàm trả về iterator đến phần tử mới được chèn trong container map.

Ví dụ

Đầu vào

map<char, int> newmap; newmap['a'] = 1; newmap['b'] = 2; newmap['c'] = 3; newmap.insert({d, 50});

Đầu ra

a:1 b:2 c:3 d:50

Ví dụ hoàn chỉnh

#include <bits/stdc++.h> using namespace std; int main() {    map<int, int> TP_Map;    TP_Map.insert({3, 50});    TP_Map.insert({2, 30});    TP_Map.insert({1, 10});    TP_Map.insert({4, 70});    cout<<"TP Map là: \n";    cout << "KHOÁ\tGIÁ TRỊ\n";    for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {       cout << i->first << "\t" << i->second << endl;    }    return 0; }

Kết quả

TP Map là: KHOÁ   GIÁ TRỊ 1     10 2     30 3     50 4     70

Ví dụ với hint iterator

#include <bits/stdc++.h> using namespace std; int main() {    map<int, int> TP_Map;    TP_Map.insert({3, 50});    TP_Map.insert({2, 30});    TP_Map.insert({1, 10});    TP_Map.insert({4, 70});    auto i = TP_Map.find(4);    TP_Map.insert(i, { 5, 80 });    cout<<"TP Map là: \n";    cout << "KHOÁ\tGIÁ TRỊ\n";    for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {       cout << i->first << "\t" << i->second << endl;    }    return 0; }

Kết quả

TP Map là: KHOÁ   GIÁ TRỊ 1     10 2     30 3     50 4     70 5     80