std::deque::operator[]
#include <deque>
reference operator[] (size_type n);
const_reference operator[] (size_type n) const;
Truy cập đọc/ghi giá trị trực tiếp vào các phần tử của deque thông qua chỉ số (index) của chúng.
Tham số
n
- Chỉ số (index) của phần tử cần truy cập, kiểu
size_type
(thường làstd::size_t
). - Chỉ số hợp lệ nằm trong khoảng từ
0
đếnsize() - 1
.
Giá trị trả về
reference
(phiên bản khôngconst
):- Trả về một tham chiếu (có thể đọc và ghi) đến phần tử tại vị trí
n
. Bạn có thể sử dụng tham chiếu này để thay đổi giá trị của phần tử.
- Trả về một tham chiếu (có thể đọc và ghi) đến phần tử tại vị trí
const_reference
(phiên bảnconst
):- Trả về một tham chiếu hằng (chỉ đọc) đến phần tử tại vị trí
n
. Phiên bản này được sử dụng khi deque là một đối tượngconst
.
- Trả về một tham chiếu hằng (chỉ đọc) đến phần tử tại vị trí
Đặc điểm
- Toán tử
[]
cho phép truy cập trực tiếp vào phần tử tại vị trín
với độ phức tạpO(1)
- thời gian hằng số, rất nhanh chóng. - Toán tử
[]
không kiểm tra xem chỉ sốn
có nằm trong phạm vi hợp lệ hay không (từ0
đếnsize() - 1
). Nếu truy cập ngoài phạm vi, hành vi sẽ là không xác định (undefined behavior), có thể dẫn đến lỗi hoặc crash chương trình. - Deque cũng cung cấp hàm
at()
để truy cập phần tử theo chỉ số.at()
có kiểm tra phạm vi và ném ra ngoại lệstd::out_of_range
nếu chỉ số không hợp lệ, an toàn hơn[]
nhưng chậm hơn một chút. - Toán tử
[]
trả về tham chiếu, cho phép bạn thay đổi trực tiếp giá trị của phần tử. - Phiên bản
const
được sử dụng cho các đối tượng dequeconst
, đảm bảo tính an toàn vềconst
.
Ví dụ
#include <iostream>
#include <deque>
int main() {
std::deque<int> myDeque = {1, 2, 3};
std::cout << myDeque[5] << '\n'; // Truy cập ngoài phạm vi, hành vi không xác định!
myDeque[-1] = 10; // Truy cập ngoài phạm vi, hành vi không xác định!
return 0;
}
Các hàm liên quan
at | Cung cấp cách thức truy cập an toàn đến các phần tử của deque thông qua chỉ số (index) |
front | Trả về tham chiếu đến phần tử đầu tiên trong deque |
back | Trả về tham chiếu đến phần tử cuối cùng trong deque |