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

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

map::cbegin() là hàm built-in trong C++ STL, được định nghĩa trong header . cbegin() là hàm begin hằng số (constant begin function).

Hàm này trả về iterator hằng số trỏ đến phần tử đầu tiên trong container map. Iterator trả về là iterator hằng số, không thể dùng để sửa đổi nội dung. Ta có thể dùng chúng để duyệt giữa các phần tử của container map bằng cách tăng hoặc giảm iterator.

Cú pháp

newmap.cbegin();

Tham số

Hàm không chấp nhận tham số nào.

Giá trị trả về

Trả về iterator trỏ đến phần tử đầu tiên của container map liên hợp.

Ví dụ

Đầu vào

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

Đầu ra

a = 1

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});    //Sử dụng map::cbegin để lấy phần tử đầu    auto temp = TP_Map.cbegin();    cout <<"Phần tử đầu tiên là: "<<temp->first << " -> " << temp->second;    cout<<"\nTP Map là: \n";    cout << "KHOÁ\tGIÁ TRỊ\n";    for (auto i = TP_Map.cbegin(); i!= TP_Map.cend(); i++) {       cout << i->first << "\t" << i->second << endl;    }    return 0; }

Kết quả

Phần tử đầu tiên là: 1 -> 10 TP Map là: KHOÁ   GIÁ TRỊ 1     10 2     30 3     50 4     70

map::cend() là gì?

map::cend() là hàm built-in trong C++ STL, được định nghĩa trong header . Hàm cend() là hàm end hằng số (constant end()). Hàm này trả về iterator hằng số của phần tử sau phần tử cuối cùng trong container map liên hợp.

Iterator trả về là iterator hằng số, không thể dùng để sửa đổi nội dung. Ta có thể dùng chúng để duyệt giữa các phần tử của container map bằng cách tăng hoặc giảm iterator.

map::cbegin() và map::cend() được dùng để duyệt qua toàn bộ container bằng cách cung cấp đầu phạm vi và cuối phạm vi.

Cú pháp

newmap.cend();

Tham số

Hàm không chấp nhận tham số nào.

Giá trị trả về

Trả về iterator trỏ đến sau phần tử cuối cùng của container map liên hợp.

Ví dụ

Đầu vào

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

Đầu ra

error

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<<"\nTP Map là: \n";    cout << "KHOÁ\tGIÁ TRỊ\n";    for (auto i = TP_Map.cbegin(); i!= TP_Map.cend(); 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