Chuyển tới nội dung chính

std::deque::crbegin

#include <deque>

const_reverse_iterator crbegin() const noexcept;

Trả về một const_reverse_iterator trỏ đến phần tử cuối cùng của deque.

Tham số

Không có tham số

Giá trị trả về

  • Trả về một const_reverse_iterator trỏ đến phần tử cuối cùng của deque. const_reverse_iterator chỉ cho phép đọc giá trị, không cho phép thay đổi.

Đặc điểm

  1. crbegin() được sử dụng để lấy một iterator cho phép đọc các phần tử của deque theo thứ tự đảo ngược, bắt đầu từ phần tử cuối cùng, nhưng không cho phép thay đổi giá trị của chúng. Nó thường được sử dụng trong các vòng lặp khi bạn chỉ cần truy cập giá trị mà không cần sửa đổi theo chiều ngược lại.
  2. crbegin() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  3. crbegin() thường được sử dụng cùng với crend() để duyệt ngược qua toàn bộ deque. crend() trả về const_reverse_iterator trỏ đến phần tử "past-the-end" ở phía trước phần tử đầu tiên (theo chiều duyệt thông thường).
  4. rbegin() trả về reverse_iterator (có thể đọc và ghi), trong khi crbegin() trả về const_reverse_iterator (chỉ đọc).
  5. Gọi crbegin() không làm thay đổi nội dung của deque.
  6. Độ phức tạp: O(1) - Thời gian hằng số.

Ví dụ

#include <iostream>
#include <deque>
#include <algorithm>

int main() {
std::deque<int> myDeque = {1, 2, 3, 4, 5};

// Tìm giá trị lớn nhất sử dụng crbegin() và crend()
auto it = std::max_element(myDeque.crbegin(), myDeque.crend());

if (it != myDeque.crend())
{
std::cout << "Largest element: " << *it << std::endl; // Output: Largest element: 5
}

return 0;
}

Các hàm liên quan

beginTrả về một iterator trỏ đến phần tử đầu tiên của deque
crendTrả về một const_reverse_iterator trỏ đến phần tử trước phần tử đầu tiên của deque
rbeginTrả về một reverse iterator trỏ đến phần tử cuối cùng của deque