2 Fragen zur std::map



  • Hi,

    ich möchte gerne eine map mit 3 Argumenten benutzen, doch dazu habe ich 2 fragen:

    1. Füllen der Map:

    std::map<std::string, int, bool> mymap;
    
    int main (void)
    {
        // Geht nicht, std::make_pair will 2 parameter, habe aber 3.
        mymap.insert(std::make_pair("hallo", 3, true)); 
    
        return 0;
    }
    

    Geht nicht, was muss ich machen damit es klappt?

    2. Etwas in der map finden:

    std::map<std::string, int, bool> mymap;
    
    int main (void)
    {
        // Hier kommt schon zur Compilierzeit der error:
        // C:\...\include\xtree(477): error C2064: term does not evaluate to a function
        // Hab ich jedoch 2 Argumente in der map gehts einwandfrei?
        mymap.find ("hallo");
    
        return 0;
    }
    

    Zum einen Frage ich mich wie ich die map füllen kann und zum anderen wie ich etwas aus der map finden kann ohne das dieser Fehler kommt, bei 2 Argumenten hats ja wunderbar geklappt. 😞

    Schon mal danke im voraus!



  • so was könntest du machen :

    struct bool_int {
      bool_int( bool _b, int _i ): b(_b), i(_i) {}
      bool b;
      int  i;
    };
    std::map<std::string, bool_int > mymap;
    

    Kurt



  • betrachten wir mal die funktion make_pair: was bedeuted pair wohl? genau "paar". und aus wieviel sachen besteht ein paar? 2. also wirds mit 3 argumenten wohl nicht gehen! 😃

    du wirst wohl irgendwas andres machen müssen, zb kannst du als 2. typ eine struct benutzen

    struct foo{
        int bar;
        bool foobar;
    };
    
    std::map<std::string,foo> mymap;
    


  • Oder schau dir mal boost::tuple an ...



  • @otze

    <flamemode_on>
    ein paar kann auch mehr als 2 sein. z.b. 3 oder 4
    Das PAAR sind genau zwei

    <flamemode_off>

    @poster

    bist du echt nicht auf die idea gekommen eine struct zu nehmen? 🙄

    was auch brauchbar ist

    eine map die z.b. auch einem string udn einer anderen oder eine map welche aus 2 maps besteht



  • newkid_ schrieb:

    <flamemode_on>
    ein paar kann auch mehr als 2 sein. z.b. 3 oder 4
    Das PAAR sind genau zwei

    <flamemode_off>

    <feuer_mit_feuer>
    ein paar: element aus {2,3,4,...}
    ein Paar = 2
    </feuer_mit_feuer>

    die deutsche sprache hat sich wohl noch nicht an die komplette kleinschreibung gewöhnt.

    ot: duden hat bei mir gerade ganz schön an ansehen verloren:

    http://duden.de/ schrieb:

    [...]
    <!--

    // Weihnachtsaktion von ww24, falls nich Weihnachten 2004 is, bitte löschen 😉

    if(location.search=="?kal=1") {
    var win = null;
    win = window.open("/kurzweil/adventskalender/adventskalender.php","Adventsalender","width=400,height=500,menubar=no,toolbar:no,scrollbars,location:no");
    if(win.window.focus){win.window.focus();}
    }

    //-->
    [...]


Anmelden zum Antworten