Archiv verlassen und diese Seite im Standarddesign anzeigen : vektor problem (anfaenger)
tuxipuxi
28-09-2002, 21:53
hi,
ich wollte gerad nur mal kurz den gebrauch von einem vektor testen,programm laeuft auch,nur die ausgabe finde ich verwirrend. erstmal den quelltext:
"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
vector<int> meinvektor(200);
for(int i=0;1<200;i++)
{
meinvektor[i]=i;
cout<<"Element"<<i<<" : "<<meinvektor[i]<<endl;
};
};
"
ich bin davon ausgegangen das dann die ausgabe "element 1: 1" usw. bis 200 kommt,aber nein,egal welche vektorgroesse ich nehm,immer bis 249...wisst ihr warum?
Hi!
for(int i=0;1<200;i++) müsste das nicht so ausschauen oder ist das nur ein Tippfehler ;)
for(int i=0;i<200;i++)
mfg mike :D
DerLipper[TuX]
01-10-2002, 13:34
Meine Version ist noch etwas besser wartbar:
#include <iostream>
#include <vector>
using namespace std;
#define K_CNT_VECTOR 200
int main(int argc, char **argv)
{
int i = 0;
vector<int> myvector(K_CNT_VECTOR);
for (i=0; i < myvector.size(); i++)
{
myvector[i]=i;
cout << "Element: " << i << "\t" << myvector[i] << endl;
}
return 0;
}
1. Vektorgrößen als Skalar anzugeben sollte man sich verkneifen wenns geht. Bei größeren Projekten kann das schon ein paar hundert Änderungen ergeben, wenn du aus der 200 201 oder 199 machst.
2. bei int main(..) solltest du am Ende return 0; zurückgeben, damit du ne Warning weniger hast beim Übersetzen.
Gruß,
Marko
anda_skoa
01-10-2002, 15:14
Original geschrieben von DerLipper[TuX]
1. Vektorgrößen als Skalar anzugeben sollte man sich verkneifen wenns geht. Bei größeren Projekten kann das schon ein paar hundert Änderungen ergeben, wenn du aus der 200 201 oder 199 machst.
Man sollte auch vermeiden, Konstanten per #define zu definieren, denn diese Macro wird durch einen Skalar ersetzt und man kann in einem Stacktrace wieder nur mit Zahlen arbeiten.
Besser ist, man verwendet die dafür vorgesehene const Deklaration
const int VECTOR_SIZE = 200;
Ciao,
_
tuxipuxi
02-10-2002, 15:50
sorry,aber was ist ein skalar :confused:
Moin!
[ein bisschen Mathe: ]
Soweit ich weiß, ist ein Skalar eine ganz normale Zahl . Ein Skalar hat also nur eine größe und keine Richtung. Im gegensatz zum Vektor der eine Richting und eine Länge (2D oder 3D). Diese Begriffe haben aber mit dem programmierzeugs nur wenig zu tun....
[Programmierersprache:]
Was Anda-Skoda meint, ist:
Du solltest nicht einfach deinen Wert per define vom präfrozesor eintragen lassen, sondern besser eine nicht änderbare (Konstante) Variable verwenden.
Dies wird durch das vorangestellte Schüsselwort const erreicht...
anda_skoa
02-10-2002, 16:06
Eine eindimensionale Größe, also alles, was ein einfacher Wert ist.
Ein Vektor oder eine Matrix bestehen aus mehreren solcher Skalare.
(ansich ist ein Vektor auch nur eine Matrix und ein Skalar ein Vektor mit nur einem Element :))
Ciao,
_
tuxipuxi
02-10-2002, 18:37
Original geschrieben von anda_skoa
Besser ist, man verwendet die dafür vorgesehene const Deklaration
_
hm....ein grosser vorteil von containern gegenueber arrays ist doch auch die variable groesse zur laufzeit oder? durch eine konstante groesse macht man sich diesen vorteil doch kaputt,oder seh ich da was falsch?
anda_skoa
02-10-2002, 18:42
Ja, du kannst auch eine Variable nehmen, bzw am Anfang die Größe des Vektors mit 0 initzilisieren.
Das mit dem const war mehr eine Verbesserung von DerLippers Vorschlag.
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.