std::map::clear
#include <map>
void clear() noexcept;
Xóa tất cả các phần tử khỏi std::map, làm cho std::map 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
- Xóa tất cả phần tử:
clear()
xóa tất cả các phần tử khỏi std::map, đưa std::map về trạng thái rỗng. - Giảm kích thước về 0: Sau khi gọi
clear()
, kích thước của std::map (số lượng phần tử) sẽ trở thành 0. - 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. - Làm thay đổi iterator: Thao tác
clear()
sẽ làm thay đổi tất cả iterator đang trỏ vào std::map. - Không làm thay đổi
max_size()
:clear()
không làm thay đổi giá trị trả về bởimax_size()
. - 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 tree structure của map. 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ể. - Độ phức tạp: Độ phức tạp của
clear()
làO(n)
, với n là số phần tử trong std::map, vì các destructor của các phần tử cần được gọi.
Ví dụ
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> mymap = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
std::cout << "Size before clear: " << mymap.size() << '\n'; // Output: Size before clear: 3
mymap.clear(); // Xóa tất cả các phần tử
std::cout << "Size after clear: " << mymap.size() << '\n'; // Output: Size after clear: 0
if (mymap.empty()) {
std::cout << "mymap is empty\n"; // Output: mymap is empty
}
return 0;
}
Các hàm liên quan
erase | Xóa một hoặc nhiều phần tử khỏi std::map |
size | Trả về số lượng phần tử (cặp key-value ) hiện có trong std::map |
empty | Kiểm tra xem std::map có rỗng hay không |