wie aus 1,1,1,1,4,5,4,4,4,1,1,1 folgendes machen 1,4,5,4,1,?



  • hallo

    bin noch Anfänger in c++ habt ihr eine Idee zu meinem Problem?

    eine Funktion liefert Werte von 1 bis 5 aber leider manchmal den gleichen Wert hintereinander

    1,1,1,1,4,5,4,4,4,4,4,1,1,1 wie kann ich aus dieser Reihe folgende Reihe bekommen

    1,4,5,4,1....

    die Zahlenreihe wird über Switch an eine neue Funktion übergeben - kann ich mittels einer Funktion den Switch so einstellen dass er nur einmal einen Wert übergibt

    case 1:
    R = 1;
    Wert(R);
    break;

    case 2:
    R = 2;
    Wert(R);
    break;

    case 3:
    R = 3;
    Wert(R);
    break;

    bin am verzweifeln

    ich hoffe ihr könnt mir helfen

    lg greenday 🙄



  • Also wenn es um die Benachbarten geht:

    #include <algorithm>
    #include <vector>
    #include <iterator>
    using namespace std;
    
    int main()
    {
    	vector<int> vec{1,1,1,1,4,5,4,4,4,4,4,1,1,1};
    	vec.erase( unique(begin(vec), end(vec)), end(vec) );
    }
    


  • greenday schrieb:

    die Zahlenreihe wird über Switch an eine neue Funktion übergeben - kann ich mittels einer Funktion den Switch so einstellen dass er nur einmal einen Wert übergibt

    Zeig mal kompletten Code ... das riecht, als würdest Du da etwas total unnötig verkomplifiziert machen.



  • Wieso ein case? Wenn du immer den Wert des cases an die Funktion Wert() übergibst?

    switch (value)
    {
        case 1:
        R = 1;
        Wert(R);
        break;
    
        case 2:
        R = 2;
        Wert(R);
        break;
    
        case 3:
        R = 3;
        Wert(R);
        break; 
    }
    

    also gleich

    Wert(value)
    


  • Damit es identisch zur switch-Variante ist fehlt noch ein if:

    if (value >= 1 && value <= 3)
        Wert(value);
    

    Je nach Bedeutung von value kann es IMO auch Sinn machen den switch beizubehalten, nur dann vielleicht einfach

    switch (value) {
    case 1:
    case 2:
    case 3:
        Wert(value);
        break;
    }
    


  • Damit es identisch zur switch-Variante ist fehlt noch ein if:

    Na gut, dachte dass angegebene switch ist nur ein Ausschnitt. Steht ja nirgends dass es nur für die Werte 1-3 gelten soll.

    Aber ich denke es geht hier sowieso um was anderes, wobei ich den Satz hier sowieso nicht ganz verstehe:

    - kann ich mittels einer Funktion den Switch so einstellen dass er nur einmal einen Wert übergibt



  • optimizer schrieb:

    Damit es identisch zur switch-Variante ist fehlt noch ein if:

    Na gut, dachte dass angegebene switch ist nur ein Ausschnitt. Steht ja nirgends dass es nur für die Werte 1-3 gelten soll.

    Steht ja nirgends dass er den Wertebereich nicht anpassen darf.

    optimizer schrieb:

    Aber ich denke es geht hier sowieso um was anderes, wobei ich den Satz hier sowieso nicht ganz verstehe:

    - kann ich mittels einer Funktion den Switch so einstellen dass er nur einmal einen Wert übergibt

    Ich glaube den Satz versteht keiner so ganz genau. Vielleicht will er seinen ursprünglichen Code in ein if (R == 0) reinpacken oder sowas in der Art. Keine Ahnung.


Anmelden zum Antworten