std::deque::at
#include <deque>
reference at(size_type n);
const_reference at(size_type n) const;
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), tương tự như toán tử []
, nhưng có kiểm tra phạm vi hợp lệ.
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
at()
được sử dụng để truy cập và đọc/ghi giá trị của phần tử tại vị trín
trong deque.at()
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 chỉ số không hợp lệ,at()
sẽ ném ra ngoại lệstd::out_of_range
.- Nhờ kiểm tra phạm vi,
at()
an toàn hơn toán tử[]
. Sử dụngat()
giúp bạn tránh được hành vi không xác định khi truy cập ngoài phạm vi của deque. at()
trả về tham chiếu, cho phép bạn thay đổi trực tiếp giá trị của phần tử.- Bạn nên sử dụng khối
try-catch
để xử lý ngoại lệstd::out_of_range
khi sử dụngat()
. - Độ phức tạp:
O(1)
- Thời gian hằng số. Việc truy cập phần tử bằngat()
rất nhanh, tương đương với toán tử[]
.
Ví dụ
#include <iostream>
#include <deque>
int main() {
std::deque<int> myDeque = {10, 20, 30, 40, 50};
// Truy cập và in ra phần tử thứ ba (chỉ số 2)
std::cout << "Third element: " << myDeque.at(2) << '\n'; // Output: Third element: 30
// Thay đổi giá trị của phần tử đầu tiên (chỉ số 0)
myDeque.at(0) = 99;
// In ra toàn bộ deque
std::cout << "myDeque:";
for (int i = 0; i < myDeque.size(); ++i) {
std::cout << ' ' << myDeque.at(i);
}
std::cout << '\n'; // Output: myDeque: 99 20 30 40 50
return 0;
}
Các hàm liên quan
[] | 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 |
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 |