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

std::deque::cend

#include <deque>

const_iterator cend() const noexcept;

Trả về một iterator hằng (constant iterator) trỏ đến phần tử sau 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_iterator trỏ đến phần tử sau phần tử cuối cùng của deque. Đây là một vị trí "past-the-end". const_iterator chỉ cho phép đọc giá trị, không cho phép thay đổi.

Đặc điểm

  1. cend() ("constant end") được sử dụng để xác định điểm kết thúc khi duyệt qua các phần tử của deque bằng const_iterator, thường kết hợp với cbegin().
  2. Sử dụng cend() đảm bảo an toàn hơn khi không muốn vô tình sửa đổi container trong quá trình duyệt.
  3. cend() trả về const_iterator trỏ đến phần tử sau phần tử cuối cùng. Dereferencing (toán tử *) iterator này sẽ dẫn đến hành vi không xác định (undefined behavior).
  4. Iterator trả về bởi cend()const_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.
  5. cend() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  6. cend() thường được sử dụng cùng với cbegin() để duyệt qua toàn bộ deque. Khi cbegin()cend() bằng nhau, điều đó có nghĩa là deque rỗng.
  7. end() trả về iterator (có thể đọc và ghi), trong khi cend() trả về const_iterator (chỉ đọc).
  8. Gọi cend() không làm thay đổi nội dung của deque.
  9. Độ phức tạp: O(1) - Thời gian hằng số.

Ví dụ

#include <iostream>
#include <deque>

int main() {
// Tạo một deque chứa các số nguyên
std::deque<int> myDeque = {1, 2, 3, 4, 5};

// Duyệt qua các phần tử bằng cbegin() và cend()
for (auto it = myDeque.cbegin(); it != myDeque.cend(); ++it) {
std::cout << *it << " "; // In các phần tử
}
std::cout << std::endl;

// Cố gắng thay đổi giá trị thông qua iterator (Sẽ gây lỗi biên dịch)
// *myDeque.cbegin() = 10; // Lỗi: const_iterator không cho phép thay đổi giá trị

return 0;
}

Các hàm liên quan

endTrả về một iterator trỏ đến phần tử sau phần tử cuối cùng của deque
cbeginTrả về một iterator hằng (constant iterator) trỏ đến phần tử đầu tiên của deque