Variablennamen erzeugen



  • Hallo Ihr,

    ich schon wieder 🙄

    Und zwar brauch ich diesmal dynamisch erzeugte Variablennamen - geht sowas in C++?
    Ich hab eine Schleife, sagen wir mal ueber Index k. Fuer jedes k in der Schleife muss ich einen Parameter setzen und damit eine Funktion aufrufen.

    Quasi:

    for (int k = 0; k < Kmmax; k++){

    int parameterk;
    // also in parameterk will ich das "k" durch den aktuellen Wert von k ersetzen, versteht ihr, was ich meine? 😕

    rumwurschtel(parameterk);

    }

    Jetzt ist die Frage, wie ich mir diese Parameternamen erzeuge. Ich braeuchte praktisch sowas in der Art

    for (int k = 0; k < Kmmax; k++){

    String bla = "parameter";
    bla.append{k};

    int bla;
    rumwurschtel(bla);
    }

    Gibts so irgendwas in C++? Weil irgendwie waere dann "bla" ja gleichzeitig ein String und ein int?? 😕 😕 😕 Dabei will ich doch ein int mit dem Namen des Strings bla..

    Noch ne Frage:
    Gibts sowas (http://java.sun.com/j2se/1.4.1/docs/api/index.html) wie bei Java auch fuer C++? Also, ein online Verzeichnis der C++ Datenstrukturen??

    Planlos wie immer,

    AchtungAnfaenger 🙄

    [ Dieser Beitrag wurde am 26.06.2003 um 23:54 Uhr von AchtungAnfaenger editiert. ]



  • Kann es sein, dass du Arrays suchst?



  • Nein, du kannst keinen parameter erzeugen!
    Aber es sieht mir fast so aus als ob du k übergeben willst oder?
    Mach halt einfach

    for(int i=0;i<kmax;i++)
    {
       funktion(i);
    }
    

    dynamisch erzeugte Var-Name gibt es nicht, da Var-namen Speicherbereiche sind die festgelegt worden sind. Nichts anderes als als adressen nur verpackt in nette buschstabenkombinationen!



  • Hmm, das sind aber keine guten Neuigkeiten 😞

    Das Problem mit meiner "Funktion" ist, dass es keine programminterne Funktion ist, sondern der Aufruf einer externen Software. Die externe Software loest praktisch ein Matheproblem. Das Matheproblem muss einen eindeutigen Namen haben und Variablen mit einem eindeutigen Namen. Ich erzeuge also eine Reihe von Matheproblemen, die ich geloest haben will und dazu der externen Software uebergeben muss. Der externen Software kann ich aber leider kein array andrehen, sondern nur diese Spezialdatenstruktur-Mathevariablen.

    Naja, vielleicht geht das dann einfach nicht so wie ichs gern haette. 😞

    Danke aber trotzdem fuer Eure Antworten!!



  • du willst in jedem schleifendurchlauf eine andere variable erzeugen, aber mit welchem sinn?
    im prinzip ist dein parameterk in jedem durchlauf eine eigene variable.
    notfalls könnte man ja nochwas mit einer map machen



  • hallo /wachweck):

    int mathe_rumwurschtel (int x) {
      return x*x;
    }
    
    int main () {
       int eindeutiger_name_naja = 2;
       mathe_rumwurschtel (eindeutiger_name_naja);
    }
    

    es ist egal, welchen namen du eindeutiger_name_naja gibst, in der mathe_rumwurschtel-funktion heißt jede variable, die du übergibst x.
    außerdem ist das nicht einmal dieselbe, es wird eindeutiger_name_naja nur kopiert.

    edit: oder beschreib mal genauer, was du willst und was diese struktur ist, die du übergeben musst.
    ich glaub ich weiß, was du meinst. hat die struktur denn eine membervariable namens "eindeutiger_name" o.ä. ?
    dann kannst du im prinzip mit einem stringstream die int variable von int nach string oder nach c-string konvertieren.

    [ Dieser Beitrag wurde am 27.06.2003 um 00:11 Uhr von davie editiert. ]



  • Hallo davie 🙂

    nehmen wir mal an, ich hab drei Probleme zu loesen:

    Problem 1: x+1 = 0
    Problem 2: x+2 = 0
    Problem 3: x+3 = 0

    Grob laeuft folgendes ab:
    In der externen Software gibt es eine Datenstruktur "MatheProblem". Man ruft die Software auf, indem man ein "MatheProblem" erzeugt

    MatheProblem nameDesProblems;

    Dann gibt es eine Datenstruktur "Variable". Man muss eine Variable zu dem Problem erzeugen:

    Variable x(nameDesProblems);

    Und dann will man das Problem loesen:

    nameDesProblems.loesen(x);

    Tja, und dazu braeuchte ich halt verschiedene Problemnamen (nameDesProblems1, nameDesProblems2,..) und verschiedene Variablennamen (x1, x2,..)

    Verstehst Du, was ich mein? Ist ein bissel schwer zu erklaeren irgendwie..

    [ Dieser Beitrag wurde am 27.06.2003 um 00:34 Uhr von AchtungAnfaenger editiert. ]



  • was spricht gegen:

    for (int i = 0; i < 10; ++i) {
      MatheProblem x(hole_aufgabe());
      Variable x_var(x);
      x.loese_mit (x_var);
      x_var.print ();
    }
    

    10 verschiedene, nacheinander.

    namen sind nur schall und rauch. sobald du das programm kompiliert hast, gibt es keine namen mehr.
    oder ist ein Makro im Spiel?

    [ Dieser Beitrag wurde am 27.06.2003 um 00:38 Uhr von davie editiert. ]


Anmelden zum Antworten