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
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.- Iterator trả về bởi
cbegin()
là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. 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.begin()
trả vềiterator
(có thể đọc và ghi), trong khicbegin()
trả vềconst_iterator
(chỉ đọc).- Hàm này không thay đổi trạng thái của container.
- Trả về một iterator hằng (constant iterator), không thể sử dụng để sửa đổi các phần tử.
- 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ử). - Độ 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
begin | Trả về một iterator trỏ đến phần tử đầu tiên của deque |
cend | 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 |
crbegin | Trả về một const_reverse_iterator trỏ đến phần tử cuối cùng của deque |