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

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ột const_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

  1. end() thường được sử dụng trong các vòng lặp (ví dụ for hoặc while) để duyệt từ đầu đến cuối vector một cách an toàn.
  2. 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ó.
  3. 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.
  4. 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ại end() 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

backTruy xuất phần tử tại vị trí cuối cùng
beginTrả về một iterator trỏ đến phần tử đầu tiên của vector
rbeginTrả về một iterator ngược (reverse iterator) trỏ tới phần tử cuối cùng của vector
rendTrả về một iterator ngược trỏ tới phần tử trước phần tử đầu tiên của vector