Array mit Vektor
-
Auf deinen Code will ich mal nicht eingehen. Wenn du 10 dynamische Arrays brauchst schlag ich vor du nimmst einfach
std::array<std::vector<E>,10> ar;
-
out schrieb:
Auf deinen Code will ich mal nicht eingehen. Wenn du 10 dynamische Arrays brauchst schlag ich vor du nimmst einfach
std::array<std::vector<E>,10> ar;
ok.. und wie kann ich da nun werte einfügen? bin noch ein ziemlicher beginner sry
geht das dann mit
ar[position].push_back(zahl);
?
bzw brauche ich ja auch einen zähler damit ich weiß wie viele werte in meinen einzelnen Vektoren drinnen sind
wie kann ich das realisieren?
-
christl_ schrieb:
out schrieb:
Auf deinen Code will ich mal nicht eingehen. Wenn du 10 dynamische Arrays brauchst schlag ich vor du nimmst einfach
std::array<std::vector<E>,10> ar;
ok.. und wie kann ich da nun werte einfügen? bin noch ein ziemlicher beginner sry
Erstmal schaust du, ob dein Compiler std::array unterstützt. Kopier einfach mal nur die Zeile in dein Projekt und versuch es zu kompilieren. Ansprechen tust du die einzelnen std::vector ganz normal mit
ar[0] ar[1] ar[2] // bis ar[9}
Willst du einen Wert im std::vector einfügen, nimmst du push_back
ar[0].push_back( 123 ); ar[1].push_back( 456 ); ar[2].push_back( 789 ); // bis ar[9}.push_back( 123 );
christl_ schrieb:
bzw brauche ich ja auch einen zähler damit ich weiß wie viele werte in meinen einzelnen Vektoren drinnen sind
Ne das brauchst du Gott sei Dank nicht:
cout << "Es sind " << ar[0].size() << " Elemente im std::vector";
-
out schrieb:
christl_ schrieb:
out schrieb:
Auf deinen Code will ich mal nicht eingehen. Wenn du 10 dynamische Arrays brauchst schlag ich vor du nimmst einfach
std::array<std::vector<E>,10> ar;
ok.. und wie kann ich da nun werte einfügen? bin noch ein ziemlicher beginner sry
Erstmal schaust du, ob dein Compiler std::array unterstützt. Kopier einfach mal nur die Zeile in dein Projekt und versuch es zu kompilieren.
Leider steht es dass array und vector keine member of std sind und ich glaub ich darf sie nicht includen
weil dann kommt noch ne Fehlermeldung wegen#ifndef __GXX_EXPERIMENTAL_CXX0X__
#error This file requires compiler and library support for the \
ISO C++ 2011 standard. This support is currently experimental, and must be \
enabled with the -std=c++11 or -std=gnu++11 compiler options.
#endifaber ich hab noch ne kurze Frage
wenn ich zb
double a= 8.8;
size_t b= 7;
size_t c= b*4/a;wie kann ich es machen, dass c wieder ein size_t und kein double wird?
-
christl_ schrieb:
weil dann kommt noch ne Fehlermeldung wegen
#ifndef __GXX_EXPERIMENTAL_CXX0X__
#error This file requires compiler and library support for the \
ISO C++ 2011 standard. This support is currently experimental, and must be \
enabled with the -std=c++11 or -std=gnu++11 compiler options.
#endifHast du die Fehlermeldung auch gelesen? Sie könnte nämlich nicht aussagekräftiger sein...
-
probier mal den Aufruf von g++ mit Optionen -std=c++0x oder g++ -std=g++11
was std::vector etc angeht: hast du
using namespace std;'' vergessen ? Oder besser:
using std::vector; using std::array;'' uswwas den "error: expected .." angeht: Um einen Vektor mit new in die Initialisierungsliste zu schreiben, nimmt man eher sowas wie:
Vektor() : bucket_zaehler(0), val(new vector<E>(10)){ ...}
wobei val vom Type vector<E>* sein muß.
-
und daß c ganzzahlig wird, erreicht man mit floor(b*4/a) (und #include<cmath>)
-
großbuchstaben schrieb:
was std::vector etc angeht: hast du
using namespace std;'' vergessen ? Oder besser:
using std::vector; using std::array;'' uswNee, er hat nur kein #include <vector> und kein #include <array> und weil es eine Hausaufgabe ist und er C mit Klassen lernt darf er es auch nicht.
-
dann ist diese Frage im C++ Unterforum ja genau richtig platziert
-
anscheinend darf ich jetzt doch
#include vector
verwendennun habe ich trotzdem in meiner Zeile mit
std::array<std::vector<E>,zaehler>ar;
3 Fehler
'array' is not a member of 'std'
expected primary-expression before ',' token
'ar' was not declared in this scope
-
Da steht er weiß nicht was "array" ist, weil du noch #include <array> brauchst.
-
großbuchstaben schrieb:
und daß c ganzzahlig wird, erreicht man mit floor(b*4/a) (und #include<cmath>)
Ich denke nicht, dass dies die gesuchte Antwort auf das Problem ist. Denn es ist gar kein Problem da.
-
auch wieder wahr