用了一个map<int, myClass *>的map
为了释放myClass* 分配的内存,需得到map中全部myClass指针。
由于key不是连续的int,请问在不知道key的情况下,如何得到全部myClass指针?
请高手指教!

解决方案 »

  1.   

    用GetStartPosition 和 GetNextAssoc 函数
      

  2.   

    To: 84830388
    这里用的是map,不是CMap,有没有别的方法?
    To:vcmute
    begin() end()得到开始和结尾,但如何实现从开始到结尾的遍历,比如得到next?
      

  3.   

    用++即可(iterator 操作)
      

  4.   

    myClass *p;         
    map<int, myClass *>::iterator pos;
    for(pos = coll.begin();pos != coll.end();++pos)
    {
    p=(*pos).second;
    delete p;
    }
      

  5.   

    coll的定义:
    map<int,myClass*> coll;
      

  6.   

    typedef map<int,myClass*>  MYMAP;
    MYMAP  MyMap;
    MYMAP::iterator MyIter;
    //here add some elements to MyMap
    //walk through
    for(MyIter = MyMap.begin(),MyIter != MyMap.end(); MyIter++)
    {   
       //access the value in the map;
       assert(MyIter->second);
       delete MyIter->second;
    }