cuốn sách gpt4 ai đã làm

Phá hủy bản đồ C++

In lại Tác giả: Walker 123 Thời gian cập nhật: 28-11-2023 00:42:14 33 4
mua khóa gpt4 Nike

Tôi muốn xóa bản đồ trong hàm hủy nhưng tôi không biết nó có trống không. Có ổn không nếu tôi xóa nó như sau?

for(std::map::iterator it = m_map.begin(); it != m_map.end(); ++it)
{
xóa nó-> thứ hai;
}
m_map.clear();

Hoặc tôi cũng nên đặt một điều kiện if xung quanh thao tác trên như if(!m_map.empty()){} để kiểm tra xem nó có trống không.

câu trả lời hay nhất

Nếu bản đồ trống,m_map.begin() sẽ ở bên m_map.end() Tương tự, vì vậy vòng lặp không làm gì cả. m_map.clear()(hay đúng hơn là ~std::bản đồ sẽ xảy ra, nhưng nó sẽ xảy ra thông thoáng() hoặc tương đương) sẽ xảy ra nếu hàm hủy do trình biên dịch cung cấp như một phần của hàm hủy được cung cấp tự động và do đó không bắt buộc.

Về việc phá hủy bản đồ C++, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/18203229/

33 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress