std::string::begin
#include <string>
// Phiên bản non-const:
iterator begin() noexcept;
// Phiên bản const:
const_iterator begin() const noexcept;
Trả về một iterator trỏ đến ký tự đầu tiên của chuỗi std::string. Iterator này có thể được sử dụng để duyệt qua các ký tự trong chuỗi, từ đầu đến cuối.
Tham số
Không có tham số
Giá trị trả về
iterator
- Một iterator trỏ đến ký tự đầu tiên của chuỗi (phiên bản non-const).
const_iterator
- Một const iterator trỏ đến ký tự đầu tiên của chuỗi (phiên bản const).
Đặc điểm
begin()
có hai phiên bản:- Phiên bản
non-const
trả về iterator cho phép thay đổi nội dung của chuỗi thông qua iterator đó. - Phiên bản
const
trả về const_iterator không cho phép thay đổi nội dung của chuỗi thông qua iterator đó.
- Phiên bản
begin()
trả về iterator khi được gọi trên đối tượng std::string non-const, và trả về const_iterator khi được gọi trên đối tượng std::string const.- iterator cho phép thay đổi giá trị của phần tử mà nó trỏ đến, trong khi const_iterator thì không.
- Phạm vi được xác định bởi
begin()
vàend()
là nửa mở[begin, end)
, không bao gồm phần tửend()
. begin()
thường được sử dụng để:- Duyệt qua các ký tự của chuỗi từ đầu đến cuố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 (ví dụ: std::for_each, std::transform, std::copy,...). - Xác định điểm bắt đầu của một phạm vi (range) đại diện cho toàn bộ chuỗi.
Ví dụ
#include <iostream>
#include <string>
#include <algorithm>
int main() {
std::string str = "Hello, world!";
// Duyệt qua chuỗi sử dụng iterator
std::cout << "Chuỗi: ";
for (std::string::iterator it = str.begin(); it != str.end(); ++it) {
std::cout << *it;
}
std::cout << std::endl;
// Thay đổi ký tự đầu tiên sử dụng iterator
if (!str.empty()) {
*str.begin() = 'h';
}
// Sử dụng std::transform với iterator
std::transform(str.begin(), str.end(), str.begin(), ::toupper);
std::cout << "Chuỗi sau khi biến đổi: " << str << std::endl;
return 0;
}
Các hàm liên quan
end | Trả về một iterator trỏ đến vị trí ngay sau ký tự cuối cùng của chuỗi std::string |
rbegin | Trả về một reverse iterator trỏ đến ký tự cuối cùng của chuỗi |