Abfrage der Größe eines Vektors
-
-
Guck mal hier:
http://cplusplus.com/reference/stl/vector/Ich würde den Vector mit Iteratoren durchlaufen

Die Anzahl der Elemente kriegt man mit size() raus. Das hast du doch schon! - Ansonsten würde die Schleife doch nicht funktionieren.
-
Also das ist mein ganzer code:
{ int a; vector<int> elem (5); //Definition des arrays (Datentyp "int", Name elem, 5 Elemente) cout << "Der Vektor hat " << elem.size() << " Elemente." << '\n'; //Anzahl der Elemente anzeigen elem [2]=22; //Der eingegebene Wert 22 wird als Element 2 gespeichert cout << elem [0] <<'\n'; //Wert ausgeben (Inhalt des Elementes 0) cout << elem [2] <<'\n'; //Wert ausgeben (Inhalt des Elementes 2) cout << "Gib den Wert fuer das 3. Element ein: "; cin >> elem [4]; //Wert eingeben für Element 3 a = 0; while (a < elem.size()) { cout << elem [a] << '\n'; a ++; } cin>>elem.size(); system("PAUSE"); return EXIT_SUCCESS; }die vektorgröße ist
vector<int> elem (5);ich möchte aber die vektorgröße selber bestimmen, während das programm läuft.
-
Du willst also die Größe verändern - dann guck dir mal resize() an:
-
Ich möchte die Größe nicht verändern. Das Programm soll mich Fragen, wie viele Widerstände meine Schaltung hat. Dann gebe ich eine Zahl ein. Diese Zahl soll dann die Größe des Vektores sein, also die Anzahl der Widerstände.
-
chickn schrieb:
Ich möchte die Größe nicht verändern. Das Programm soll mich Fragen, wie viele Widerstände meine Schaltung hat. Dann gebe ich eine Zahl ein. Diese Zahl soll dann die Größe des Vektores sein, also die Anzahl der Widerstände.
Dann gibst du bei der Erstellung des vectors direkt diese Zahl an. Gute Regel: Variablen immer erst dann erstellen, wenn sie tatsächlich gebraucht werden. Normalerweise steht dann auch schon der Anfangszustand vollständig fest und man kann gleich alles richtig initialisieren.
-
So etwas in der Art meinte ich (es funktioniert nicht):
#include <cstdlib> #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]) { int a; vector<int> widerstand(a); cout<<"Gebe die Anzahl der Widerstaende ein: "; cin>>a; cout<<"\n\nDie Schaltung hat "<<widerstand.size()<<" Widerstände."; system("PAUSE"); return EXIT_SUCCESS; }
-
chickn schrieb:
So etwas in der Art meinte ich (es funktioniert nicht):
#include <cstdlib> #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]) { int a; vector<int> widerstand(a); // hier wird die Grösse des vectors auf den aktuellen Wert von a gesetzt (irgendwo zw. 0..random) cout<<"Gebe die Anzahl der Widerstaende ein: "; cin>>a; // die Wertänderung von a hat keinen Einfluss auf den vector cout<<"\n\nDie Schaltung hat "<<widerstand.size()<<" Widerstände."; system("PAUSE"); return EXIT_SUCCESS; }
-
int main() { std::size_t a; std::cin >> a; std::vector<int> widerstand(a); std::cout << widerstand.size() << std::endl; // ... }
-
Ahhhh ich muss a also vorher bestimmen. Vielen Dank

-
Oder resize benutzen oder einfach so oft push_back/insert wie du brauchst.
