Vector Problem



  • hallo

    ich habe ein problem, ich muss mehrere arrays deklarieren in einer schleife

    also beispielsweise oder wünschenswerterweise:

    arr1
    arr2
    arr3
    usw.
    wieviele es sind und die länge weiß man auch nicht und ändert sich von schleifendurchgang zu schleifendurchgang.
    ich kann leider keinen code liefern, da ich überhaupt keine ahnung habe, wie ich das machen soll bzw ob das überhaupt möglich ist.

    ich kann natürlich auch die deklaration voranstellen, trotzdem ändert sich die zahl der arrays je nach eingabe der dimension.

    vielen dank im voraus.



  • also array deklariert man so

    //z.B ein int array
    
    int tolles_array[10];
    

    und dann sieh dir mal dazu

    new //und 
    delete
    

    an



  • Doppelpointer würde ich sagen ist das Stichwort hier.



  • vielen dank. also wie man arrays deklariert, weiß ich schon, ich weiß nur nicht wie man mehrere deklariert auf einmal...

    es müssen mal zehn sein und ein anderes mal vielleicht nur fünf...



  • Da wir hier im C++ Forum sind würde ich eher zu einem std::vector<std::vector<T> > raten.



  • this->that schrieb:

    Da wir hier im C++ Forum sind würde ich eher zu einem std::vector<std::vector<T> > raten.

    *zustimm*

    Damit kannst du dann die Größe dynamisch verändern.



  • ok vielen dank ich werde mich mal einlesen.
    ich melde mich, falls es weitere probleme gibt diesbezüglich thx.



  • um die frage oben etwas konkreter zu formulieren

    ich habe einen array mit meinetwegen 1122345567
    und brauche jeweils einen neuen arry pro ziffer mit der länger der häufigkeit der zahl sprich

    11 22 3 4 55 6 7

    und da wollte ich ursprünglich für 11 22 3 4 usw jeweils einen neuen array mit entsprechender länge deklarieren.
    beim nächsten schleifendurchlauf kann es sein, dass

    11 222 3 44 5 6
    gebraucht wird, also weniger arrays mit anderer größe.

    ist das mit vektoren möglich bzw gibt es da bessere lösungen?



  • ach ja es müßte noch mit C kompatibel sein, was ich bisher durch extern "C" int main (..... geschafft habe, gilt das auch für vectoren?



  • Das geht mit vector bestimmt.
    Wie meinst du das mit dem C? Du willst deinen Code C-Kompatibel haben?! Afaik geht das nicht. C ist ja nicht aufwärtskompatibel. 😉
    Aber du kannst mit extern weiterhin C Funktionen benutzen, wenn du das meinst.



  • drakon schrieb:

    Das geht mit vector bestimmt.
    Wie meinst du das mit dem C? Du willst deinen Code C-Kompatibel haben?! Afaik geht das nicht. C ist ja nicht aufwärtskompatibel. 😉
    Aber du kannst mit extern weiterhin C Funktionen benutzen, wenn du das meinst.

    ja genau in diese richtung meinte ich es auch 😉
    thx.

    gibt es irgendwo ein schönes tutorial für vector, weil ich habe nur über google zu knappe erklärungen oder zu spezielle forenbeiträge gesehen...?

    bzw kann mir einer vielleicht bitte, wenn es nicht zuviel umstände macht, posten wie ich einen array 112334556 beispielsweise
    in 5 zeilen speichern kann?

    also
    11
    2
    33
    4
    55
    6

    kann gerne alles null sein, wäre mir sogar lieber, aber diese struktur müßte es haben für weitere berechnungen.



  • Schau dich mal hier rum:
    http://www.cppreference.com/

    Da hat es auch Beispiele dazu. Vectoren sind eigentlicht etwas wie sehr hanhabbare array's.





  • danke für die links

    allerdings bin ich schon auf ein problem gestoßen, was warscheinlich ein krasser anfängerfehler ist....

    ich kontruiere den vektor

    vector<int> v;

    und das dos fenster öffnet sich für ungefähr 0.3 sekunden und schließt sich wieder. kommentiere ich es weg, geht es wieder ganz normal....
    woran kann das liegen (nutze dev c++)

    es kommt zwar eine antiquated header warnung, aber 1. woher bekommt man "neue" header und 2. hatte ich das schon öfter und nichts passiert.



  • cofriga schrieb:

    danke für die links

    allerdings bin ich schon auf ein problem gestoßen, was warscheinlich ein krasser anfängerfehler ist....

    ich kontruiere den vektor

    vector<int> v;

    und das dos fenster öffnet sich für ungefähr 0.3 sekunden und schließt sich wieder. kommentiere ich es weg, geht es wieder ganz normal....
    woran kann das liegen (nutze dev c++)

    es kommt zwar eine antiquated header warnung, aber 1. woher bekommt man "neue" header und 2. hatte ich das schon öfter und nichts passiert.

    Komisch. Du machst sonst nichts mit dem vector? Hast du den Header richtig includet und ev. noch ein std:: voreran?! (Sollte ja nicht an dem liegen, aber sonst wüsste ich nicht, was das Problem sein könnte.. :S)



  • drakon schrieb:

    cofriga schrieb:

    danke für die links

    allerdings bin ich schon auf ein problem gestoßen, was warscheinlich ein krasser anfängerfehler ist....

    ich kontruiere den vektor

    vector<int> v;

    und das dos fenster öffnet sich für ungefähr 0.3 sekunden und schließt sich wieder. kommentiere ich es weg, geht es wieder ganz normal....
    woran kann das liegen (nutze dev c++)

    es kommt zwar eine antiquated header warnung, aber 1. woher bekommt man "neue" header und 2. hatte ich das schon öfter und nichts passiert.

    Komisch. Du machst sonst nichts mit dem vector? Hast du den Header richtig includet und ev. noch ein std:: voreran?! (Sollte ja nicht an dem liegen, aber sonst wüsste ich nicht, was das Problem sein könnte.. :S)

    #include <vector>
    using namespace std;

    mal mit std:: versucht mal ohne, ohne erfolg...
    nein nur diese eine zeile, deswegen poste ich ja. wenn hier schon so viele hilfsbereit sind, kann man wohl von mir verlangen, alles versucht zu haben 😉

    EDIT:

    ich habe es mal die exe direkt im dos aufgerufen und folgende fehlermeldung kam:

    this application has requested the runtime to terminate it in an unusual way.
    please contact the application´s support team for more information



  • cofriga schrieb:

    this application has requested the runtime to terminate it in an unusual way.
    please contact the application´s support team for more information

    .. Genau diesen Fehler hatte ich vorgestern auch. 😉

    Also mach mal ein neues Projekt oder probier wenigstens das mal auf das kleins möglichste zu beschränken. (damit du es ev. posten kannst).
    Dann wäre da mal noch ein anderer Compiler..
    Hast du das neuste PSDK installiert?

    btw:
    Irgendwie habe ich das Gefühl, dass du ne Frau bist?! (Hat jetzt nichts mit dem Problem zu tun.. Wahrscheinlich nur der komische Name.. :))



  • habe ich gerade versucht
    neuer code

    nur die vector anweisung wieder das selbe problem.

    ...was ist ein psdk tut mir leid, aber ich weiß es wirklich nicht.

    ps: nein ich bin keine frau, auch wenn es der name evtl suggerieren mag 😉



  • Das ist die Platform SDK. Sorry, hat nix mit zu tun. Hatte irgendwie im Kopf, dass du eine Windows Anwendung machst. 🙄

    Naja. Dan poste mal den gesamten Code, der nicht funktioniert.



  • ich depp

    thx für die hilfe, jetzt habe ich die bereiche mal überprüft, die ja "sicher" richtig sind.
    und siehe da ich habe ein array mit länge m gemacht und m noch gar keinen wert zugewiesen

    danke nochmals


Log in to reply