2D-String-Vector mit Anfangswerten



  • Guten Abend,
    Ich spiele mich nun schon seit einigen Stunden mit einem 2D-Vector.

    Folgende Werte/Strings möchte ich zu beginn im Vector haben:

    vector<vector<string>> rowname = list_of(list_of("Anzahl")("Verlegung in Luft")("Verlegung in Erde"))
    											(list_of("Anzahl")("Verlegung in Luft")("Verlegung in Erde"))
    											(list_of("leer")("leer"))
    											(list_of("10")("15")("20")("25")("30")("40")("45")("50")("55")("60"))
    											(list_of("leer")("leer"))
    								   	        (list_of("leer")("leer"))
    											(list_of("leer")("leer"));
    

    Nun mein Problem ist folgendes:
    Der freundliche Compiler spuckt diesen Fehler aus:

    Error 71 error C2564: 'const char *' : a function-style conversion to a built-in type can only take one argument c:\program files (x86)\microsoft visual studio 10.0\boost_1_53_0\boost\assign\list_of.hpp 163 1 Leitungsberechnung

    Beim Probieren habe ich herausgefunden, dass wenn ich alle Werte/Strings auf 1 Zeichen verkürze, funktioniert das Programm (trifft ja auch die Fehlerbeschreibung vom VS10 sehr gut ...)
    Nur leider hilft mir das nicht wirklich weiter.

    Ich würde mich freuen, wenn mir jemand helfen könnte und bedanke mich schonmal im voraus.

    mfg
    michi



  • Da musst du dem Compiler wohl etwas helfen:

    vector<vector<string>> rowname = list_of<vector<string>>(list_of<string>("Anzahl")("Verlegung in Luft")("Verlegung in Erde")) 
    		(list_of<string>("Anzahl")("Verlegung in Luft")("Verlegung in Erde")) 
    		(list_of<string>("leer")("leer"))
    		(list_of<string>("10")("15")("20")("25")("30")("40")("45")("50")("55")("60")) 
    		(list_of<string>("leer")("leer"))
    		(list_of<string>("leer")("leer"))
    		(list_of<string>("leer")("leer"));
    


  • herzliches Dankeschön für die schnelle Hilfe!
    Funktioniert einwandfrei.

    Gibt es zu diesen Befehlen im Internet nähere Erklärungen? Auf der boost.org Hompage habe ich nämlich auch nur das list_of von einem 1d-vector gesehen oder sollte sich die Systematik dahinter von selbst erklären?

    mfg
    michi



  • Puh, na ja, man gibt den Typ den man haben will halt direkt an. Bis zu dem Punkt ist das eigentlich relativ offensichtlich, wenn man Templates verstanden hat. Warum das explizite Angeben den Typ den Fehler fixt, das ist eine andere Geschichte, da musst du in die boost assign files gucken. 😉



  • Ok!
    Ich denke da bin ich dann zu wenig programmierer 😉
    (ist bei mir nur damit ich mir beim Auslegen in Elektrotechnik schneller bin) ...

    tja man kann nicht alles haben 😃

    jedenfalls recht herzlichen dank!
    wünsch dir noch nen schönen Abend

    mfg
    michi


Log in to reply