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

Đặt hàm cbegin () và cend () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về các hàm set ::cend () và set ::cbegin () 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 là gì ::cbegin ():

Hàm cbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề. Hàm này trả về trình lặp hằng đang trỏ đến phần tử đầu tiên trong vùng chứa đã đặt. Vì tất cả các trình vòng lặp trong vùng chứa tập hợp là các trình vòng lặp hằng số, chúng không thể được sử dụng để sửa đổi nội dung mà chúng ta có thể sử dụng chúng để duyệt giữa các phần tử của vùng chứa tập hợp bằng cách tăng hoặc giảm trình vòng lặp.

Cú pháp

const_iterator name_of_set.cbegin ();

Tham số

This function does not accept any parameter.

Giá trị trả về

Hàm này trả về const_iterator, nằm ở cuối dãy.

Ví dụ

Input: set<int> set_a = {18, 34, 12, 10, 44};
   set_a.cbegin();
Output: Beginning element in the set container: 10

Ví dụ

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << "Beginning element in the set container: ";
   cout<< *(set_a.cbegin());
   return 0;
}

Đầu ra

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

Beginning element in the set container: 10

Ví dụ

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << "set_a contains:";
   for (auto it=set_a.cbegin(); it != set_a.cend(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   return 0;
}

Đầu ra

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

set_a contains: 10 12 18 34 44

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

Hàm cend () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề. Hàm này trả về biến lặp hằng của phần tử đã qua phần tử cuối cùng trong vùng chứa đã đặt. Vì tất cả các trình vòng lặp trong vùng chứa tập hợp là các trình vòng lặp hằng số, chúng không thể được sử dụng để sửa đổi nội dung mà tất cả những gì chúng ta có thể sử dụng chúng là để duyệt giữa các phần tử của vùng chứa tập hợp bằng cách tăng hoặc giảm trình vòng lặp.

Cú pháp

constant_iterator name_of_set.cend();

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ề const_iterator, nằm ở cuối dãy.

Ví dụ

Input: set<int> set_a = {18, 34, 12, 10, 44};
set_a.end();
Output: Past to end element: 5

set ::cend () được sử dụng với cbegin () hoặc begin () để lặp lại toàn bộ tập hợp, vì nó trỏ đến phần tử quá khứ đến phần tử cuối cùng trong vùng chứa.

Ví dụ

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 11, 10, 44};
   cout << "Past to end element: ";
   cout<< *(set_a.cend());
   return 0;
}

Đầu ra

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

Past to end element: 5
We will get a random value

Ví dụ

#include <iostream>
#include <set>
using namespace std;
int main (){
   set<int> set_a = {18, 34, 12, 10, 44};
   cout << "set_a contains:";
   for (auto it=set_a.cbegin(); it != set_a.cend(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   return 0;
}

Đầu ra

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

set_a contains: 10 12 18 34 44