Arrays
-
vec2f.x.push_back(12); vec2f.y.push_back(3);
kompiliert so aber nicht, eher
vec2f.push_back(Vector2f(12,3));
wenn man Vector2f noch einen passenden Konstruktor spendiert.
-
Kóyaánasqatsi schrieb:
freakC++ schrieb:
Wie bereits angedeutet, gibts eine direkte Verwandschaft zwischen Arrays und Zeigern.
Achja, welche direkte Verwandschaft denn genau?
Er meinte bestimmt die Syntax für den Zugriff auf ein Element und der/die/das "array-to-pointer decay":
int ding[5]; int *bums = ding; // array to pointer decay ding[2] = 3; bums[2] = 3;
Aber da hört es dann auch schon auf mit der Verwandtschaft.
Gruß,
SP
-
Sebastian Pizer schrieb:
int ding[5]; int *bums = ding; // array to pointer decay ding[2] = 3; bums[2] = 3;
Aber da hört es dann auch schon auf mit der Verwandtschaft.
Ich persönlich finde nicht, dass es direkt etwas mit einer Verwandtschaft zu tun hat.
KPC schrieb:
vec2f.x.push_back(12); vec2f.y.push_back(3);
kompiliert so aber nicht, eher
vec2f.push_back(Vector2f(12,3));
wenn man Vector2f noch einen passenden Konstruktor spendiert.
Hm, ich muss mich entschuldigen, Korrektur:
#include <vector> #pragma pack( 1 ) //Unter VS, wegen Alignment struct Vector2f { int x, y = 0; }; #pragma pop( ) std::vector<Vector2f> vec2f; Vector2f nVec2f; nVec2f.x = 10; nVec2f.y = 20; vec2f.push_back(nVec2f); //...
-
Du hast aber eine feste Elemente-Zahl angegeben. Das ist undynamisch, das geht besser:
@Koya
er fragte explizit nach Arrays und die bisherigen Erklärungen bezogen sich auch alle auf Arrays. Ich nehm auch fast immer Vector, aber ich denke es ist als Anfänger ganz gut wenn man auch weiß, was Arrays sind.
-
It0101 schrieb:
Du hast aber eine feste Elemente-Zahl angegeben. Das ist undynamisch, das geht besser:
@Koya
er fragte explizit nach Arrays und die bisherigen Erklärungen bezogen sich auch alle auf Arrays. Ich nehm auch fast immer Vector, aber ich denke es ist als Anfänger ganz gut wenn man auch weiß, was Arrays sind.
std::vector ist ein Array.
-
kann man dies auch mit datentypen umgehen?
-
Natürlich ist vector intern ein array. Aber die (C++)-Welt besteht nunmal nicht nur aus vector...
-
whaaatz schrieb:
kann man dies auch mit datentypen umgehen?
Was?
-
Kóyaánasqatsi schrieb:
whaaatz schrieb:
kann man dies auch mit datentypen umgehen?
Was?
kann man mehrere koordinatenwerte bzw. eine Reihe von Koordinaten mit hilfe von datentypen speichern...
-
whaaatz schrieb:
kann man mehrere koordinatenwerte bzw. eine Reihe von Koordinaten mit hilfe von datentypen speichern...
Klar, wenn du uns nur mal sagen würdest, wie genau du es haben möchtest. Eine Möglichkeit ist die, wie ich sie vorhin schon einmal gepostet habe:
#include <vector> #pragma pack( 1 ) //Unter VS, wegen Alignment struct Vector2f { int x, y = 0; }; #pragma pop( ) std::vector<Vector2f> vec2f; Vector2f nVec2f; nVec2f.x = 10; nVec2f.y = 20; vec2f.push_back(nVec2f); //...
In vec2f kannste jetzt so viel pushen wie du möchtest...
BTW: Die Daten können nur in einem Datentypen abgelagert werden, bzw. in deren reservierten Speicher, von daher ergibt deine Frage nicht so viel Sinn.
-
Kóyaánasqatsi schrieb:
whaaatz schrieb:
kann man mehrere koordinatenwerte bzw. eine Reihe von Koordinaten mit hilfe von datentypen speichern...
Klar, wenn du uns nur mal sagen würdest, wie genau du es haben möchtest. Eine Möglichkeit ist die, wie ich sie vorhin schon einmal gepostet habe:
#include <vector> #pragma pack( 1 ) //Unter VS, wegen Alignment struct Vector2f { int x, y = 0; }; #pragma pop( ) std::vector<Vector2f> vec2f; Vector2f nVec2f; nVec2f.x = 10; nVec2f.y = 20; vec2f.push_back(nVec2f); //...
In vec2f kannste jetzt so viel pushen wie du möchtest...
BTW: Die Daten können nur in einem Datentypen abgelagert werden, bzw. in deren reservierten Speicher, von daher ergibt deine Frage nicht so viel Sinn.struct ist ja auch ein Datentyp, der mehrere Variablen gleichen oder verschiedenen Typs zu einem neuen Datentyp zusammenfasst.
-
Ich habe mir z.b jetzt vorgenommen, dass ich eine Abfrage von drei Wurfkoordinaten (x und y) und dies speicher in struktur. (Datentyp struct)
Ausgaben dann sollte erneut:
BeispielWurf 0:
x: 9
y: 8Wurf 1:
x: 4
y: 7Wurf 2:
x: 3
y: 5die x und y sind immer wieder veränderbar in der console aber wurf 0,1,2 sind fest gegeben.
-
Äh? Zeig mal deinen Code.
-
hallo,
noch kurz zu meinem Beitrag. Ich meinte es so, wie SP es erklärt hat. Vielleicht war das Wort "Verwandschaft" schlecht gewählt...lg, freakC++
-
Kóyaánasqatsi schrieb:
Äh? Zeig mal deinen Code.
habe noch nicht angefangen, da ich stuct gar nicht gut verstehe
ich will das so programmieren, sodass die ausgage:
wurf0 ( fest)
x: ( veränderbar nach compiliernen) /cin >>
y: "wurf1:
x:
y:
.
.
.
.und nachdem ich das letzte mal enter gedrückt habe kommt z.b
"deine Koordinaten sind:"
Wurf 0:
x: 9
y: 8Wurf 1:
x: 4
y: 7Wurf 2:
x: 3
y: 5und dies mit "struct"
ich glaube ich bin zu alt um C++ zu lernenkann mir da jemand helfen?
-
Warum bin ich eigtl der erste, der den Sinn dieser Zeile hier in Frage stellt:
#pragma pack( 1 ) //Unter VS, wegen Alignment
Ist doch (hier) völlig unerheblich...bb