map访问key不存在的情况下,用find。比[]直接访问的意思不一样,map[key]不返null
key不存在的话则创建一个pair并调用默认构造函数
map<CGuid, CLibItem>::iterator iterItem = m_world->m_library_scene->m_items.find(guid);
if (iterItem != m_world->m_library_scene->m_items.end())
{
CLibItem it = iterItem->second; //map[key]不返null
}
int idx = 0;
map<int, CString> m_id_package;
m_id_package.insert(make_pair(idx++, _T("一")));
m_id_package.insert(make_pair(idx++, _T("二")));
m_id_package.insert(make_pair(idx++, _T("三")));
CString strArr = m_id_package[4];//此时创建了一个4对应的second默认构造函数
如果second是指针,那么会默认创建类的函数
而不会返回NULL

浙公网安备 33010602011771号