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 hoạt động và giá trị trả về.
Set trong C++ STL là gì?
Set trong C++ STL là container chứa các phần tử duy nhất theo thứ tự chung. Set bắt buộc các phần tử duy nhất vì giá trị của phần tử xác định bản thân phần tử. Một khi đã thêm giá trị vào set container thì sau đó không thể sửa đổi, tuy nhiên vẫn có thể xóa hoặc thêm giá trị vào set. Set được sử dụng như cây tìm kiếm nhị phân.
set::cbegin() là gì?
cbegin() là hàm built-in trong C++ STL, được định nghĩa trong header <set>. Hàm trả về constant iterator trỏ đến phần tử đầu tiên trong set container. Vì tất cả iterator trong set container đều là constant iterator, chúng không thể dùng để sửa đổi nội dung, chỉ dùng để duyệt qua các phần tử bằng cách tăng/giảm iterator.
Cú pháp
constant_iterator name_of_set.cbegin();
Tham số
Hàm không nhận tham số.
Giá trị trả về
Trả về constant_iterator, trỏ đến phần tử đầu tiên của chuỗi.
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ụ hoàn chỉnh 1
#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;
}
Kết quả
Beginning element in the set container: 10
Ví dụ hoàn chỉnh 2
#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;
}
Kết quả
set_a contains: 10 12 18 34 44
set::cend() là gì?
cend() là hàm built-in trong C++ STL, được định nghĩa trong header <set>. Hàm trả về constant iterator của phần tử sau phần tử cuối cùng trong set container. Vì tất cả iterator trong set đều là constant iterator, không thể sửa đổi nội dung, chỉ dùng để duyệt.
Cú pháp
constant_iterator name_of_set.cend();
Tham số
Hàm không nhận tham số.
Giá trị trả về
Trả về constant_iterator, trỏ đến vị trí sau phần tử cuối cùng của chuỗi.
Ví dụ
Input: set<int> set_a = {18, 34, 12, 10, 44}; set_a.end(); Output: Past to end element: 5
set::cend() thường dùng với cbegin() hoặc begin() để duyệt toàn bộ set, vì nó trỏ đến vị trí sau phần tử cuối cùng.
Ví dụ hoàn chỉnh 1
#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;
}
Kết quả
Past to end element: 5 Sẽ nhận được giá trị ngẫu nhiên
Ví dụ hoàn chỉnh 2
#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;
}
Kết quả
set_a contains: 10 12 18 34 44