#include #include using namespace std; // Datenstruktur deklarieren struct FloatVec { float *vecPtr; // Zeiger auf ein float-Feld int maxmem; // max. verfuegbare Elemente int used; // belegte Elemente }; // Vektor initialisieren void fv_init(FloatVec& v, int maxmem=10) { // neues Speicherfeld erzeugen (alle automatisch 0.0) v.vecPtr = new float[maxmem]; // max. verfuegbare Elemente definieren v.maxmem = maxmem; // benutzte Elemente auf 0 setzen v.used = 0; } // den Vektorspeicher auf neue Groesse vergroessern void fv_resize(FloatVec& v, int size) { // nur vergroessern, wenn notwendig if( size <= v.maxmem) return; // neuen Speicher erzeugen float *temp = new float[size]; // altes Feld in neuen Speicher laden for(int i=0; i v.maxmem) fv_resize(v,v.maxmem+1); // Elemente ab pos nach rechts shiften for(int i=v.used-1; i>pos; i--) v.vecPtr[i] = v.vecPtr[i-1]; // neues Element an pos eintragen v.vecPtr[pos] = wert; // Anzahl benutzter Elemente erhoehen v.used++; } else{ cout << "Grenze fuer pos in fv_insert ueberschritten!" << endl; } } int main() { // Objekt erstellen FloatVec fv; // Objekt initialisieren mit Reserve von 20 Plaetzen fv_init(fv,5); // Vektor mit 0.1 bis 1.7 fuellen for(float i=0.1; i<2.0; i+=0.4) fv_append(fv,i); // Vektor ausgeben fv_print(fv,5); // Vektor um einen Wert erweitern cout << "\nHaenge Wert 123.45 an..." << endl; fv_append(fv,123.45); // Vektor ausgeben fv_print(fv,2); // ein Element ausgeben cout << "\nElement an Position 3: " << fv_get(fv,3) << endl; // ein Element loeschen fv_remove(fv,3); cout << "\nEntferne Element an Position 3..." << endl; // Vektor ausgeben fv_print(fv,2); // ein Element einfuegen cout << "\nFuege 45.678 an Position 3 ein..." << endl; fv_insert(fv,3,45.678); // Vektor ausgeben fv_print(fv,2); // Vektor loeschen fv_delete(fv); }