Hilfe bei Array benötigt :)
-
Gutenabend Informatikfans

Ich versuche gerade Arrays zuverstehen und anzuwenden.
Mein Ziel ist in ein Array(Feld?)bestimmte Werte "reinzupacken".Bsp a[b,c,d]
a ist meine variable.also das Array^^
b,c sind integerwerte
d ist ein string.Meine Frage. Wie sieht dafür mein Script aus?Wie kann ich Arrays verstehen:-)
PS.arbeite mit dem C++ Builder 6

Schönen dank
-
Du kannst in ein Array nur Elemente eines bestimmten Datentyps reingeben, int und string mischen geht nicht

Was du allerdings machen kannst, ist die ints in strings umwandeln, bzw, falls der string numerisch ist, den string in einen int.
-
Ah okay,danke

Aber wie würde es denn aussehen dann wenn ich es nur mit meinen integerwerten machen würde also
a[b,c]
b,c sind integerwerte

der String(c) ist leider ein Wort^^...
-
Mahlzeit,
Ein Array ist wie du es richtig gennant hast ein (nicht dynamisches) Feld, in dem du mehrere Werte des gleichen!!! Typs speichern kannst. Das heißt, dass du du im selben Array keine Integer und String zusammenspeichern kannst. Du brauchst dafür verschiedene Arrays. Auf die einzelnen Felder greifst du per Index zu (Der erste Index ist null).
Die Syntax für ein Array sieht so aus:TYP Name[Anzahl Felder]; // Array erstellen // Beispiele int Lotto[6]; Lotto[0] = 6; Lotto[5] = 49 // 5 ist der größte zulässige Index int a = Lotto[5] // a = 49Ich hoffe ich konnte helfen
-
Eigentlich sind wir hier ja kein C++-Tutorial, aber ausnahmsweise:
#include<vector> #include<iostream> int main() { std::vector<int> a; // a ist ein Feld von Integerwerten a.push_back(5); // Den Wert 5 hinten an a anhängen a.push_back(10) // Den Wert 10 hinten an a anhängen std::cout<< a[0]; // Erstes Element (5) von a. In C++ fängt man bei 0 an zu zählen std::cout<< a[1]; // Zweites Element (10) von a. }Das sind natürlich nur die absoluten Grundlagen, da kann man noch viel mehr und tollere Sachen mit machen.
-
Mir fallen da schlagartig Struct/Klassen ein.
#include <string> #include <iostream> struct Daten { int b, c; std::string d; }; int main() { Daten a[10]; for(int i = 0; i < 10; ++i) { a[i].b = i; a[i].c = i * i; a[i].d = "Hallo"; } for(int i = 0; i < 10; ++i) std::cout << "Nummer: " << i + 1 << "\nb: " << a[i].b << "\nc: " << a[i].c << "\nd: " << a[i].d << "\n\n"; }Natürlich kann man den Array durch einen std::vector gescheiter ersetzen und viel verbessern.
-
Ein Array definiert man mit [], wie du scheinbar schon weißt, und zwar folgendermaßen:
int ein_paar_zahlen[] = { 42, 666 };Optional kann man auch in den eckigen Klammern die Anzahl der Elemente angeben, wobei man auch mehr angeben kann, als auf der rechten Seite steht, womit man dann Elemente hat, die mit dem Standardwert initialisiert sind, bei int ist das der Wert 0, bei strings der Leerstring "":
std::string ein_paar_strings[5] = { "hallo", "welt", "42", "666" };Will man die Elemente noch nicht initialisieren, dann kann man die {} weglassen, allerdings muss man dann die Größe angeben:
char ein_paar_zeichen[42];Der Zugriff auf die Elemente funktioniert auch wieder über [], beachte aber, dass man bei 0 zu zählen beginnt:
std::cout << ein_paar_zahlen[0] << std::endl; // 42Das Array 'ein_paar_zahlen' hat somit die Elemente 0 und 1. 'ein_paar_strings' hat 0-4. Diese "Nummern" im Array werden auch Indizes genannt. Wichtig: Der maximale Index ist immer Größe - 1
Noch etwas: Die Größe eines Arrays muss immer zur Compilezeit bekannt sein, das heißt, es ist nicht möglich, den User nach einer Zahl zu fragen und diese dann als Arraygröße zu verwenden. Willst du das, dann musst du std::vector nehmen. (Den du allerdings sowieso immer anstatt Arrays nehmen solltest)
-
Erstmals danke an euch allen

Ich probiere das erstmal aus!:)Aber die Logik dahinter habe ich verstanden.
Ps.Bin halt Anfänger

-
Okay,das habe ich nun verstanden.
Problem ist von mir :
Ich habe a,b,c,d (integerwerte nach größe Sotiert)
Bsp: 3,4,5,7kann ich denn jetzt aus dem a einen Array bauen?
Also das a[x,y] beinhaltet und dann es mit einem anderen Array vergleichen?a[x,y] mit b[k,l] vergleichen.(a = 3 und b = 4)

-
Musst du Element für Element machen. Durch den Index-Operator [bla] kannst Du auf einzelne Elemente aus dem Array zugreifen mit bla aus [0, anzahl_element_in_array -1].
Gewöhn Dir übrigens bitte Mal a[x,y] ab, das ist keine C++-Syntax.
Was geht ist, dass Du dir eine Klasse bastelst, die zwei Attribute hat. Dann kannst Du einen Vergleichsoperator für zwei Instanzen der Klasse schreiben.

-
Mal so nebenbei, durch gewisse "Tricks" (boost::any) ist es möglich, in ein Array beliebige Dinge hineinzustopfen (und das typsicher), allerdings ist das meistens schlechter Programmierstil und nicht notwendig.
-
vielen vielen vielen Dank an alle

Ich habe nun viel dazu gelernt!
Ps.Super Forum
