Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Schleife dynamische Tiefe

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.08.2008
    Beiträge
    177

    Schleife dynamische Tiefe

    Hi!

    Ich würde gerne eine Methode erstellen mit der ich Array's mit unterschieldlicher Tiefe bearbeiten kann. Dafür habe ich mich für ein Template entschieden:
    Code:
    template <string str, class T>
    void Maske::loop(T ary){
    	for(int i=0;i<ary.size() ;i++){
    		for(int j=0;j<ary[i].size();j++){
    			cout <<"ary["<<i<<"]["<<j<<"]="<<ary[i][j]<<endl;
                   }
           }
    }
    wobei ich ehrlich gesagt bei dem Template noch ein Problem mit dem String habe und es Umgebe mit:
    Code:
    template <class T1, class T2>
    void Maske::loop_secure(T1 str, T2 ary){
    Doch mein Hauptproblem ist, wie kann ich die Methode gestalten, das
    sie auch Array's unterschiedlicher Tiefe abarbeiten kann?
    Vielen Dank für Eure Hifle!

    Grüße
    dml
    Geändert von dml (07-12-2010 um 12:52 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    du musst rekursiv programmieren


    Code:
    void loop( T any, int depth ) {
       for ( int i =0 ; i< T.size(); i++ ) {
        if ( depth ) {
          loop( T[i], depth-1 );
        } else {
          cout << ...
        }
      }
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.08.2008
    Beiträge
    177
    Ja, ist schon klar, doch ich muss bei einem Template den Typ vorher initialisieren:
    Code:
    loop<int,string,vector<string > >(x,y,z);
    loop<int,string,vector<vector<string> > >(x,y,z);
    loop<int,string,int[][] >(x,y,z);
    loop<int,string,int[][][] >(x,y,z);
    Und so bleibe ich am gleichen Problem hängen.
    Aber vielen Dank!
    Geändert von dml (07-12-2010 um 15:11 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •