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

posted @ 2019-11-11 15:06  曦花  阅读(853)  评论(1编辑  收藏  举报