map, pair, make_pair, insert, wtf?!?!



  • Hallo,
    folgender Code:

    std::map< BODFileEntry, std::pair< std::string, std::string > > m_FilesBuffer;
    
    std::pair< std::string, std::string > Pair( rFilePath, "" );
    std::pair< BODFileEntry, std::pair< std::string, std::string > > PairEntry( Entry, Pair );
    
    m_FilesBuffer.insert( PairEntry );
    

    (Die Datentypen stimmen)

    Die Fehlermeldungen fangen bei:

    error C2784: "bool std::operator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)": template-Argument für "const std::list<_Ty,_Ax> &" konnte nicht von "const LegoFile::BODFileEntry" hergeleitet werden.
    

    an, und hören bei:

    error C2676: Binärer Operator '<': 'const LegoFile::BODFileEntry' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht
    

    auf. Wo ist mein Fehler? Stehe etwas auf dem Schlauch.

    Vielen dank im voraus!



  • Es muss einen operator< für deinen Schlüsseltyp geben (oder du musst beim Erstellen der map ein anderes Vergleichsprädikat angeben), damit die map weiß, wie sie die Schlüssel sortieren muss.



  • Kein kompletter Code, keine vollständige Fehlermeldung, keine Möglichkeit, dir eine sinnvolle Antwort zu geben.

    Siehe Links in meiner Signatur...



  • MFK schrieb:

    Es muss einen operator< für deinen Schlüsseltyp geben (oder du musst beim Erstellen der map ein anderes Vergleichsprädikat angeben), damit die map weiß, wie sie die Schlüssel sortieren muss.

    Danke dir! Klappt nun.



  • pumuckl schrieb:

    Kein kompletter Code, keine vollständige Fehlermeldung, keine Möglichkeit, dir eine sinnvolle Antwort zu geben.

    Siehe Links in meiner Signatur...

    Wieso? Sind doch alle relevanten Infos da!?


Anmelden zum Antworten