std::string::cbegin
#include <string>
Trả về một const iterator trỏ đến ký tự đầu tiên của chuỗi. const_iterator cho phép đọc giá trị của ký tự nhưng không cho phép thay đổi nội dung của chuỗi thông qua iterator này.
const_iterator cbegin() const noexcept;
Tham số
Không có tham số
Giá trị trả về
const_iterator
- Một const iterator trỏ đến ký tự đầu tiên của chuỗi.
Đặc điểm
cbegin()
luôn trả về const_iterator bất kể đối tượng std::string được gọi là const hay non-const. Điều này đảm bảo rằng bạn không thể vô tình thay đổi nội dung chuỗi thông qua iterator trả về từcbegin()
.- Phạm vi
[cbegin, cend)
là "nửa mở", bao gồm phần tử cbegin nhưng không bao gồm phần tử cend. cbegin()
luôn trả về const_iterator, kể cả khi đối tượng std::string là non-const.- const_iterator chỉ cho phép đọc, không cho phép thay đổi giá trị của phần tử mà nó trỏ đến.
cbegin()
là một hàm thành viên của std::string (và std::basic_string) được thêm vào từ C++11, để hỗ trợ tốt hơn cho việc lập trình với các đối tượng const.cbegin()
thường được sử dụng để:- Duyệt qua các ký tự của chuỗi từ đầu đến cuối mà không làm thay đổi nội dung chuỗi.
- Kết hợp với các thuật toán trong thư viện
<algorithm>
để thao tác với chuỗi (nhưng chỉ các thuật toán không làm thay đổi nội dung chuỗi). - Cung cấp quyền truy cập chỉ đọc vào chuỗi cho các hàm hoặc đối tượng khác.
Ví dụ
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str = "Hello, world!";
// Duyệt qua chuỗi sử dụng const_iterator và cbegin()
std::cout << "Chuỗi (sử dụng cbegin): ";
for (auto it = str.cbegin(); it != str.cend(); ++it) {
std::cout << *it;
}
std::cout << std::endl;
// Ví dụ sử dụng find với cbegin() và cend()
auto it = std::find(str.cbegin(), str.cend(), ',');
if (it != str.cend()) {
std::cout << "Dấu phẩy được tìm thấy tại vị trí: " << (it - str.cbegin()) << std::endl;
}
return 0;
}
Các hàm liên quan
begin | Trả về một iterator trỏ đến ký tự đầu tiên của chuỗi std::string |
cend | Trả về một const iterator trỏ đến vị trí ngay sau ký tự cuối cùng của chuỗi |
crbegin | Trả về một const reverse iterator trỏ đến ký tự cuối cùng của chuỗi |