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

std::unordered_multimap::clear

#include <unordered_map>

void clear() noexcept;

Xóa tất cả các phần tử khỏi std::unordered_multimap, làm cho std::unordered_multimap trở thành rỗng.

Tham số

Không có tham số

Giá trị trả về

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

Đặc điểm

  1. Xóa tất cả phần tử: clear() xóa tất cả các phần tử khỏi std::unordered_multimap, đưa std::unordered_multimap về trạng thái rỗng.
  2. Giảm kích thước về 0: Sau khi gọi clear(), kích thước của std::unordered_multimap (số lượng phần tử) sẽ trở thành 0.
  3. noexcept: clear() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  4. Làm thay đổi iterator: Thao tác clear() sẽ làm thay đổi tất cả iterator đang trỏ vào std::unordered_multimap.
  5. Không làm thay đổi max_size(), bucket_count(), max_bucket_count(), max_load_factor(): clear() không làm thay đổi giá trị trả về bởi các hàm này.
  6. Không giải phóng bộ nhớ (thường là vậy): clear() thường không giải phóng bộ nhớ được cấp phát cho underlying hash table. Bộ nhớ có thể vẫn được giữ lại để sử dụng cho các thao tác chèn phần tử sau đó. Tuy nhiên, điều này phụ thuộc vào trình triển khai cụ thể.
  7. Độ phức tạp: Độ phức tạp của clear()O(n), với n là số phần tử trong std::unordered_multimap, vì các destructor của các phần tử cần được gọi.

Ví dụ

#include <iostream>
#include <unordered_map>

int main() {
std::unordered_multimap<std::string, int> myumm = {
{"apple", 1},
{"banana", 2},
{"orange", 3},
{"apple", 4}
};

std::cout << "Size before clear: " << myumm.size() << '\n'; // Output: Size before clear: 4

myumm.clear(); // Xóa tất cả các phần tử

std::cout << "Size after clear: " << myumm.size() << '\n'; // Output: Size after clear: 0

if (myumm.empty()) {
std::cout << "myumm is empty\n"; // Output: myumm is empty
}

return 0;
}

Các hàm liên quan

eraseXóa một hoặc nhiều phần tử khỏi std::unordered_multimap
emptyKiểm tra xem std::unordered_multimap có rỗng hay không, tức là không chứa bất kỳ phần tử nào