std::vector::end
#include <vector>
iterator end() noexcept;
const_iterator end() const noexcept;
Trả về một iterator trỏ đến vị trí ngay sau phần tử cuối cùng của vector.
Tham số
Không có tham số
Giá trị trả về
end()
trả về một iterator trỏ tới vị trí ngay sau phần tử cuối cùng của vector. Iterator này không trỏ vào phần tử hợp lệ, mà là một "điểm dừng" để báo hiệu kết thúc khi duyệt qua các phần tử.- Nếu vector là
const
,end()
trả về mộtconst_iterator
(iterator hằng), đảm bảo không thể thay đổi giá trị của các phần tử khi duyệt. - Nếu vector là không hằng,
end()
trả về một iterator thông thường, cho phép thao tác trực tiếp với các phần tử.
Đặc điểm
end()
thường được sử dụng trong các vòng lặp (ví dụfor
hoặcwhile
) để duyệt từ đầu đến cuối vector một cách an toàn.end()
chỉ cung cấp một iterator và không thay đổi nội dung vector hay kích thước của nó.end()
thường được dùng trong các hàm thuật toán của thư viện chuẩn (STL), nhưstd::sort
,std::find
, để xác định phạm vi của vector cần thao tác.- Khi vector bị thay đổi kích thước (do thêm/xóa phần tử), iterator trả về bởi
end()
có thể trở nên không hợp lệ. Do đó, cần gọi lạiend()
nếu vector bị thay đổi kích thước trong quá trình duyệt.
Ví dụ
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// Duyệt các phần tử của vector từ begin() đến end()
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
Các hàm liên quan
back | Truy xuất phần tử tại vị trí cuối cùng |
begin | Trả về một iterator trỏ đến phần tử đầu tiên của vector |
rbegin | Trả về một iterator ngược (reverse iterator) trỏ tới phần tử cuối cùng của vector |
rend | Trả về một iterator ngược trỏ tới phần tử trước phần tử đầu tiên của vector |