正确写法是:
std::map<int, TaskInfo*> maps; //以下循环是错误的.因为KEY不是顺序号 //for(int i=0; i<maps.size(); i++) //TaskInfo* pInfo = maps[ i ]; //正确遍历: std::map<int, TaskInfo*>::iterator iter; for (iter=maps.begin(); iter!=maps.end(); iter++) { GH_LOG_INFO("%d, %s", iter->first, iter->second); }