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

std::vector::clear

#include <vector>

void clear() noexcept;

Xóa tất cả các phần tử trong vector.

Tham số

Không có tham số

Giá trị trả về

Không có giá trị trả về

Đặc điểm

  1. clear() xóa tất cả các phần tử hiện có trong vector, làm cho kích thước của vector trở về 0.
  2. Dung lượng (capacity) của vector không thay đổi sau khi gọi clear(). Điều này có nghĩa là vector vẫn giữ lại bộ nhớ đã cấp phát ban đầu cho việc sử dụng sau này.
  3. Gọi clear() là một thao tác có chi phí thấp và không ném ngoại lệ.
  4. Bộ nhớ đã cấp phát cho vector sẽ không được giải phóng (trừ khi bạn gọi thêm shrink_to_fit() sau đó), tức là capacity() của vector không bị thay đổi.
  5. Nếu vector chứa các đối tượng phức tạp (như con trỏ hoặc class), hàm hủy của các phần tử sẽ được gọi trước khi chúng bị xóa.
  6. Ứng dụng thực tiễn:
    • Đặt lại vector về trạng thái ban đầu mà không giải phóng bộ nhớ, giúp tối ưu khi vector cần được tái sử dụng.
    • Xóa nhanh các phần tử trong quá trình xử lý dữ liệu động.

Ví dụ

#include <iostream>
#include <vector>

int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};

std::cout << "Size before clear: " << numbers.size() << '\n';
numbers.clear();
std::cout << "Size after clear: " << numbers.size() << '\n';

if (numbers.empty()) {
std::cout << "Vector is now empty.\n";
}

return 0;
}

Các hàm liên quan

eraseXóa một hoặc nhiều phần tử khỏi vector
resizeThay đổi kích thước vector
emptyTrả về true nếu vector rỗng, ngược lại trả về false