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

std::vector::begin

#include <vector>

      iterator begin() noexcept;
const_iterator begin() const noexcept;

Trả về một iterator trỏ đến phần tử đầu tiên của vector.

Tham số

Không có tham số

Giá trị trả về

  • begin() trả về một iterator trỏ đến phần tử đầu tiên của vector. Điều này cho phép duyệt từ đầu đến cuối vector.
  • Nếu gọi begin() trên một vector không hằng (non-const), nó trả về một iterator có thể thay đổi phần tử (mutable iterator).
  • Nếu gọi begin() trên một vector hằng (const vector) hoặc qua một con trỏ/ tham chiếu hằng, nó trả về const_iterator, không cho phép thay đổi giá trị các phần tử qua iterator này.

Đặc điểm

  1. begin() thường được dùng để khởi đầu một vòng lặp hoặc khi cần duyệt qua các phần tử của vector, kết hợp với end() để xác định giới hạn cuối của vector.
  2. begin() có thể được sử dụng trực tiếp với các thuật toán chuẩn trong C++ STL, như std::sort, std::find,...
  3. begin() có thời gian thực thi hằng số O(1) vì nó chỉ đơn giản là trả về iterator trỏ đến phần tử đầu tiên, không cần tính toán thêm.
  4. Nếu vector rỗng, begin() sẽ bằng end(), vì cả hai sẽ trỏ đến cùng vị trí (không có phần tử nào).
  5. begin() an toàn khi vector được sử dụng bình thường, nhưng cần cẩn thận khi vector bị thay đổi kích thước trong khi iterator vẫn đang sử dụng, vì các iterator có thể trở nên không hợp lệ.

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

frontTruy xuất phần tử tại vị trí đầu tiên
endTrả về một iterator trỏ đến vị trí ngay sau phần tử cuối cùng 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