std::deque::crend
#include <deque>
Trả về một const_reverse_iterator trỏ đến phần tử trước phần tử đầu tiên của deque.
const_reverse_iterator crend() const noexcept;
Tham số
Không có tham số
Giá trị trả về
- Trả về một
const_reverse_iteratortrỏ đến phần tử trước phần tử đầu tiên của deque (theo thứ tự thông thường). Đây là một vị trí "past-the-end" theo hướng ngược lại.const_reverse_iteratorchỉ cho phép đọc giá trị, không cho phép thay đổi.
Đặc điểm
crend()("constant reverse end") trả vềconst_reverse_iteratortrỏ đến phần tử trước phần tử đầu tiên (theo thứ tự thông thường). Đây là một vị trí "past-the-end" theo hướng ngược lại. Dereferencing (toán tử*) iterator này sẽ dẫn đến hành vi không xác định (undefined behavior).- Iterator trả về bởi
crend()làconst_reverse_iterator, nghĩa là không thể thay đổi giá trị của các phần tử trong deque thông qua iterator này. crend()được đánh dấu lànoexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.crend()đánh dấu điểm kết thúc khi bạn duyệt ngược deque bằngcrbegin(). Khiconst_reverse_iteratorbằngcrend(), bạn đã duyệt qua toàn bộ deque theo chiều ngược lại.- Khi
crbegin()vàcrend()bằng nhau, điều đó có nghĩa là deque rỗng. rend()trả vềreverse_iterator(có thể đọc và ghi), trong khicrend()trả vềconst_reverse_iterator(chỉ đọc).- Gọi
crend()không làm thay đổi nội dung của deque. - Độ phức tạp:
O(1)- Thời gian hằng số.
Ví dụ
#include <iostream>
#include <deque>
int main() {
std::deque<int> dq = {1, 2, 3, 4, 5};
std::cout << "Các phần tử trong deque khi duyệt ngược:\n";
for (auto it = dq.crbegin(); it != dq.crend(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
Các hàm liên quan
| end | Trả về một iterator trỏ đến phần tử sau phần tử cuối cùng của deque |
| crbegin | Trả về một const_reverse_iterator trỏ đến phần tử cuối cùng của deque |
| rend | Trả về một reverse iterator trỏ đến phần tử trước phần tử đầu tiên của deque |