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

ánh xạ hàm crbegin () và crend ​​() 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à ví dụ của các hàm map ::crbegin () và map ::crend ​​() 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 bên trong 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 đồ ::cbegin () là gì?

Hàm map ::crbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . crbegin () ngụ ý liên tục bắt đầu đảo ngược, có nghĩa là đảo ngược của cbegin là hằng số bắt đầu, nói cách khác, hàm crbegin () sẽ trả về trình lặp đang trỏ đến phần tử cuối cùng của vùng chứa bản đồ được liên kết với hàm. Không thể sử dụng trình lặp này để sửa đổi bản đồ. Điều này chỉ có thể được sử dụng để duyệt qua vùng chứa đã đặt.

Cú pháp

Map_name.crbegin();

Tham số

Hàm này không chấp nhận bất kỳ tham số nào.

Giá trị trả về

Hàm này trả về trình lặp đang trỏ đến phần tử cuối cùng của vùng chứa bản đồ.

Ví dụ

Đầu vào

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

Đầu ra

c:3

bản đồ ::crbegin

Ví dụ

#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});
   //using map::crbegin to fetch first last element
   auto temp = TP_Map.crbegin();
   cout<<"First element is: "<<temp->first << " -> " << temp->second;
   cout<<"\nTP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.crbegin(); i!= TP_Map.crend(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

Đầu ra

First element is: 4 -> 70
TP Map is:
MAP_KEY    MAP_ELEMENT
4             70
3             50
2             30
1             10

map ::crend ​​() là gì?

Hàm map ::crend ​​() là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . crend ​​() ngụ ý trình lặp kết thúc ngược không đổi, có nghĩa là nó đảo ngược với cend là trình lặp kết thúc không đổi, nói cách khác, hàm crend ​​() sẽ trả về trình lặp đang trỏ đến vị trí ngay trước vị trí đầu tiên của vùng chứa bản đồ được liên kết với chức năng. Không thể sử dụng trình lặp này để sửa đổi bản đồ. Điều này chỉ có thể được sử dụng để duyệt qua vùng chứa bản đồ.

Cú pháp

newmap.crend();

Tham số

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

Giá trị trả về

Nó trả về một trình vòng lặp trỏ đến phần tử đầu tiên trước đó của vùng chứa bản đồ được liên kết.

Ví dụ

Đầu vào

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

Đầu ra

error

bản đồ ::crend ​​

Ví dụ

#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 is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.crbegin(); i!= TP_Map.crend(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

Đầu ra

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