[STL] Wie Funktion bei for_each mehr Parameter übergeben?

Diskutiere [STL] Wie Funktion bei for_each mehr Parameter übergeben? im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo, hier ein kurzer Umriß meines Problems: #include <iostream> #include <string> using namespace std; void ausgabe(const string&,...

  1. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Hallo,
    hier ein kurzer Umriß meines Problems:

    PHP:
    #include <iostream>
    #include <string>
    using namespace std;

    void ausgabe(const string&, const string sTrenner="\n");
     
    int main() {
      
    vector<stringbox;
      
    box.push_back("hoho");
      
    box.push_back("haha");
      
    box.push_back("hihi");
      
    box.push_back("hehe");

      
    for_each(box.begin(), box.end(), ausgabe);
      
    // FEHLER
      
    for_each(box.begin(), box.end(), ausgabe("\t"));
      
    // FEHLER
    }

    void ausgabe(const strings, const string sTrenner="\n") {
      
    cout << s.c_str() << sTrenner.c_str();
    }
    Wie muss ich es schreiben, damit for_each mit den weiteren Parametern von ausgabe klarkommt?
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. mapiox

    mapiox Tripel-As

    Dabei seit:
    21.04.2002
    Beiträge:
    176
    Zustimmungen:
    0
    das geht nicht.
    du brauchst für jedes Vorhaben eine Funktion

    PHP:
    void ausgabe(const strings, const string sTrenner="\t")
    {
      
    cout << s  << sTrenner;

     
    void ausgabe2(const strings)
    {
      
    cout << s  << endl;


    int main() { 
      
    vector<stringbox
      
    box.push_back("hoho"); 
      
    box.push_back("haha"); 
      
    box.push_back("hihi"); 
      
    box.push_back("hehe"); 
      
      
    for_each(box.begin(), box.end(), ausgabe); 
      
    for_each(box.begin(), box.end(), ausgabe2);

     
  4. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    schade.
     
  5. panzi

    panzi Grünschnabel

    Dabei seit:
    09.08.2003
    Beiträge:
    9
    Zustimmungen:
    0
    NATÜRLICH geht das!

    PHP:
    #include <iostream>
    #include <string>
    using namespace std;

    class 
    ausgabe {
    private:
      
    string m_delim;

    public:
      
    ausgabe( const string delim "\t" ) : m_delimdelim ) {}
      
    virtual ~ausgabevoid ) {}

      
    void operator () ( const string str ) {
        
    // wozu das .c_str()?
        
    cout << str << m_delim;
      }
    };

    int main() {
      
    vector<stringbox;
      
    box.push_back("hoho");
      
    box.push_back("haha");
      
    box.push_back("hihi");
      
    box.push_back("hehe");

      
    for_each(box.begin(), box.end(), ausgabe);
      
    for_each(box.begin(), box.end(), ausgabe("\t"));

      return 
    0;
    }
    Nur noch eins: es gibt output iteratoren die das machen können, ohne das du dir ne Klasse schreiben musst:
    PHP:
    #include <iostream>
    #include <string>
    #include <iterator> // für ostream_iterator
    #include <algorithm> // für copy

    using namespace std;

    int main() {
      
    vector<stringbox;
      
      
    box.push_back("hoho");
      
    box.push_back("haha");
      
    box.push_back("hihi");
      
    box.push_back("hehe");

      
    copybox.begin(), box.end(), ostream_iteratorcout"\t" ) );

      return 
    0;
    }
    Tja, in der STL ist für fast alles schon ne Klasse vorhanden. ;)
     
Thema:

[STL] Wie Funktion bei for_each mehr Parameter übergeben?

Die Seite wird geladen...

[STL] Wie Funktion bei for_each mehr Parameter übergeben? - Ähnliche Themen

  1. Routing funktioniert nur für eine IP

    Routing funktioniert nur für eine IP: Hallo zusammen, ich habe ein sehr komisches Verhalten und kann mir das nicht erklären. Ich habe ein /28 Netz. Darin befinden sich Linuxsysteme...
  2. Warum funktioniert mein BASH - Dialog nicht ?

    Warum funktioniert mein BASH - Dialog nicht ?: Hallo, ich habe hier eine kleine Funktion in BASH geschrieben, die den Benutzer nach einer Lokalen IP Adresse Fragt, und diese dann angpingt....
  3. Xmoto Taste gedrückt halten funktioniert nicht unter Debian 10

    Xmoto Taste gedrückt halten funktioniert nicht unter Debian 10: Hab mir vor 2 Tagen Debian 10 installiert. Dazu wie immer auch das Spiel Xmoto, dessen Spieldaten ich von Debian 9 übertragen habe (und davor...
  4. Blender 2.80 mit neuer Oberfläche und neuen Funktionen

    Blender 2.80 mit neuer Oberfläche und neuen Funktionen: Nach fast zweijähriger Entwicklungszeit ist die freie 3D-Rendering-Software Blender in einer neuen Version erschienen. Blender 2.80 kommt unter...
  5. Framebuffer mit "Bild in Bild" Funktion ODER mehrere Bilder zu einem neuen (nurKonsole)

    Framebuffer mit "Bild in Bild" Funktion ODER mehrere Bilder zu einem neuen (nurKonsole): Moin Zusammen, ich habe einen Monitor mit Raspberry (an vielen Standorten) und wie immer - viel zu viel Informationen um diese gut lesbar...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden