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

std::deque::cbegin

#include <deque>

const_iterator cbegin() const noexcept;

Trả về một iterator hằng (constant iterator) trỏ đến phần tử đầu tiên 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ử đầu tiên của deque.
  • const_iterator chỉ cho phép đọc giá trị, không cho phép thay đổi.
  • Nếu deque rỗng, iterator trả về bằng với cend().

Đặc điểm

  1. cbegin() ("constant begin") được sử dụng để lấy một iterator cho phép đọc các phần tử của deque, bắt đầu từ phần tử đầu tiên, 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 chỉ cần truy cập giá trị mà không cần sửa đổi.
  2. Iterator trả về bởi cbegin()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.
  3. cbegin() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  4. begin() trả về iterator (có thể đọc và ghi), trong khi cbegin() trả về const_iterator (chỉ đọc).
  5. Hàm này không thay đổi trạng thái của container.
  6. Trả về một iterator hằng (constant iterator), không thể sử dụng để sửa đổi các phần tử.
  7. Iterator trả về bởi cbegin() hợp lệ miễn là deque không bị sửa đổi cấu trúc (thêm/xóa phần tử).
  8. Độ phức tạp: O(1) - Thời gian hằng số.

Ví dụ

#include <iostream>
#include <deque>

int main() {
std::deque<int> dq = {10, 20, 30, 40};

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

// Tạo một deque rỗng
std::deque<int> empty_dq;
if (empty_dq.cbegin() == empty_dq.cend()) {
std::cout << "Deque rỗng.\n";
}

return 0;
}

Tính tổng các phần tử

#include <iostream>
#include <deque>
#include <numeric> // for std::accumulate

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

// Tính tổng các phần tử sử dụng cbegin() và cend()
int sum = std::accumulate(myDeque.cbegin(), myDeque.cend(), 0);

std::cout << "Sum of elements: " << sum << '\n'; // Output: Sum of elements: 15

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
cendTrả về một iterator hằng (constant iterator) trỏ đến phần tử sau phần tử cuối cùng của deque
crbeginTrả về một const_reverse_iterator trỏ đến phần tử cuối cùng của deque