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

Đặt 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ác hàm set ::crbegin () và set ::crend ​​() trong C ++ STL, cú pháp, cách làm việc và giá trị trả về của chúng.

Đặt trong C ++ STL là gì?

Các bộ trong C ++ STL là các bộ chứa phải có các phần tử duy nhất theo thứ tự chung. Tập hợp phải có các phần tử duy nhất vì giá trị của phần tử xác định phần tử. Sau khi đã thêm một giá trị trong vùng chứa đã đặt thì không thể sửa đổi được, mặc dù chúng tôi vẫn có thể xóa hoặc thêm các giá trị vào tập hợp. Các tập hợp được sử dụng làm cây tìm kiếm nhị phân.

Set ::crbegin () là gì?

Hàm crbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . crbegin () ngụ ý trình lặp bắt đầu ngược không đổi, có nghĩa là đảo ngược của cbegin, là trình lặp bắt đầu không đổi, 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 bộ chứa được liên kết với hàm. Giống như các trình vòng lặp khác, điều này cũng có thể được sử dụng để sửa đổi tập hợp. Điều này chỉ có thể được sử dụng để duyệt qua vùng chứa đã đặt.

Cú pháp

constant_iterator name_of_set.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 đã đặt.

Ví dụ

Input: set<int> myset = {1, 2, 3, 4, 5};
   myset.crbegin();
Output: 5

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   set<int> ch(arr, arr + 5);
   for (auto i = ch.crbegin(); i!= ch.crend(); i++)
      cout << *i << " ";
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau

5 4 3 2 1

Cái gì được đặt ::crend ​​()

Hàm 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à đảo ngược của 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 bộ chứa được liên kết với chức năng. Giống như các trình vòng lặp khác, điều này cũng có thể được sử dụng để sửa đổi tập hợp. Điều này chỉ có thể được sử dụng để duyệt qua vùng chứa đã đặt.

Cú pháp

constant_iterator name_of_set.crend();

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 vòng lặp đang trỏ đến vị trí ngay trước vị trí đầu tiên của vùng chứa đã đặt được liên kết với hàm.

Ví dụ

Input: set<int> myset = {1, 2, 3, 4, 5};
myset.crend();
Output: 9 //random number before the first element in the set container.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(){
   int arr[] = {3, 5, 8, 1, 9};
   set<int> ch(arr, arr + 5);
   for(auto i = ch.crbegin(); i!= ch.crend(); i++)
      cout << *i<< " ";
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau

9 8 5 3 1