Vector an aufrufende Funktion übergeben!



  • Hallo!

    Ich möchte aus einer Funktion (Funk1) eine andere Funktion (Funk2) aufrufen,
    die einen von der "Funk1" versendeten "std::string" auseinandernimmt (Wort für Wort) und die einzelnen Teile des Strings in ein Vector schreibt.
    Diesen Vector muß ich an die "Funk1" übergeben, damit dieser mit den einzelnen Elementen
    des Vektors arbeiten kann.

    Wie mache ich das? Es geht mir vorrangig um die "Parameterliste"!

    Brauche Lösung ohne MFC.



  • öh, wo ist da das Problem?

    std::vector<T> funk2(const std::string &param);
    

    oder

    void funk2(const std::string &param,std::vector<T> &vec);
    


  • Hi!

    Leider klappt es bei mir noch nicht!

    Der vector, der an die Funktion (Funk2) übergeben wird, soll leer sein (kann ich ja vorher mit y.clear() erreichen. Okay.

    Dieser vector soll in "Funk2" gefüllt werden.

    Wenn ich aber in "Funk2" einen neune vector<string> testx formuliere, um den String aus str (hier test1 test2 test3 ) einzeln einzulesen, klappt das ganze ja, aber bei return an die Funktion (Funk1) kriege ich probleme, dann zeigt er bei der Zeile:

    std:.string bla1 = y[0]

    den Gesamtstring (obwohl nur test1 übergeben werden müßte) und bei

    std::string bla2 = y[1] bricht er mit Fehler ab. Was mache ich falsch?

    Ich hoffe auf Hilfe!



  • Wie füllst du den den Vector, bzw. wieso in Funk2 einen neuen vector.

    Bau den vector in Funk1 übergieb beides an Funk2 und in Funk1 kannst du dann wieder auf den Vector zugreiffen. Wiso auch

    std:.string bla1 = y[0]

    Laut Doku sollte mann den zugriff so machen

    // Create a vector, load it with the first ten characters of the alphabet
    vector<char> alphaVector;
    for( int i=0; i < 10; i++ )
    alphaVector.push_back( i + 65 );

    int size = alphaVector.size();
    vector<char>::iterator startIterator;
    vector<char>::iterator tempIterator;

    for( int i=0; i < size; i++ ) {
    startIterator = alphaVector.begin();
    alphaVector.erase( startIterator );

    // Display the vector
    for( temp = alphaVector.begin(); temp != alphaVector.end(); temp++ )
    cout << *temp;
    cout << endl;
    }



  • void foo(vector<T> & myVec)
    {
     myVec.push_back("test1");
     myVec.push_back("test2");
     myVec.push_back("test3");
     return;
    }
    

    Wenn das nicht hilft zeig mal bitte etwas von Deinem Source



  • Hi!

    Sorry, hatte einen blöden Tippfehler im Code. Es funkt! 😃

    Trotzdem Danke! 🙂

    Schönen Abend noch! 👍


Anmelden zum Antworten