mapfrage



  • Hi,

    ich hab ne map:

    std::map<std::wstring, ::IDirect3DTexture9*>           textures_;
        std::map<std::wstring, ::IDirect3DTexture9*>::iterator textures_it_;
    

    und möchte halt alle IDirect3DTexture9 objekte freigeben:

    for (textures_it_ = textures_.begin(); textures_it_ != textures_.end(); ++textures_it_)
            textures_it_->Release();
    

    doch bekomme diesen Fehler:

    error C2039: 'Release' : is not a member of 'std::pair<_Ty1,_Ty2>'
            with
            [
                _Ty1=const std::wstring,
                _Ty2=IDirect3DTexture9 *
            ]
    

    Wie kann ich die ->Release Funktion aufrufen?



  • auf second zugreifen?



  • In ner Map werden immer Paare gespeichert. Der Iterator zeigt folglich auf ein Paar in der Map. Um dran zu kommen, schreibt man

    iter->first
    

    um das Index-Element im Paar zu addressieren,
    und

    iter->second
    

    um das indizierte Element im Paar zu addressieren.

    Also in Deinem Fall:

    textures_it_->second->Release();
    

    Easy As Pie!


Anmelden zum Antworten