IBridgeSteel* steel; _ASSERTE_RT(steel); vector<IBridgeSteel*> steelVct; std::map<BridgeSteelType,std::vector<IBridgeSteel*> > m_mapSteelVct; std::map<BridgeSteelType,std::vector<IBridgeSteel*> >::iterator p= m_mapSteelVct.find(steel->GetSteelType());//寻找索引BridgeSteelType if(p!=m_mapSteelVct.end())//如果找到,插入到已有索引对应的位置 { (*p).second.push_back(steel); } else//如果没找到,创建一个新索引,然后加入 { steelVct.push_back(steel); m_mapSteelVct[steel->GetSteelType()]=steelVct; }
map的用法举例: 按属性实现数据分组,布布扣,bubuko.com
原文:http://blog.csdn.net/biggbang/article/details/22593879