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

Hàm map::find() 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::find() 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::find() là gì?

map::find() là hàm nằm trong header . Hàm này trả về một iterator trỏ đến phần tử có khóa cho trước mà ta muốn tìm kiếm.

Cú pháp

map_name.find(key_value k);

Tham số

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

Tham số

k: Đây là giá trị khóa mà ta muốn tìm kiếm từ container map.

Giá trị trả về

Trả về iterator trỏ đến phần tử liên kết với khóa k.

Ví dụ

Đầu vào

map<char, int> newmap; newmap['a'] = 1; newmap['b'] = 2; newmap.find(b);

Đầu ra

2

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;    }    //Tìm giá trị map tại vị trí    auto var = TP_Map.find(1);    cout<<"Phần tử tìm thấy tại vị trí "<<var->first<<" là: "<<var->second;    auto var_1 = TP_Map.find(2);    cout<<"\nPhần tử tìm thấy tại vị trí "<<var_1->first<<" là: "<<var_1->second;    return 0; }

Kết quả

TP Map là: KHOÁ   GIÁ TRỊ 1     10 2     30 3     50 4     70 Phần tử tìm thấy tại vị trí 1 là: 10 Phần tử tìm thấy tại vị trí 2 là: 30

Ví dụ khác

#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.find(2); i!= TP_Map.end(); i++) {       cout << i->first << "\t" << i->second << endl;    }    return 0; }

Kết quả

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