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