Verwaltung von Objekten durch std::vector

  • Allgemeine Funktionen
// Objekt zur Verwaltung durch den Vektor deklarieren
class TXYValue
{
public:
  double x;
  double y;

  TXYValue(double dx, double dy);
  {
       x = dy;
       y = dy;
  }

  ~TXYValue(void);
};

// Liste, die Zeiger auf Objekte vom Typ TXYValue verwaltet, deklarieren
// #include <vector> für std::vector nicht vergessen!
std::vector<TXYValue*> InputValues;

// 3 Objekte hinzufügen
InputValues.push_back(new TXYValue(0.1, 0.2));
InputValues.push_back(new TXYValue(0.4, 0.2));
InputValues.push_back(new TXYValue(0.6, 0.8));

// erstes Objekt anhand des Indexes holen
TXYValue *pXY = InputValues[0];

// alle Objekte im Vektor löschen
// dabei Liste durchgehen und alle Objekte im Speicher zerstören (delete)
for (int i = 0; i < InputValues.size(); i++)
{
    TXYValue *pXY = InputValues[i];
    if (pXY) delete pXY;
}
InputValues.clear(); // zuletzt noch alle Zeiger in der Liste löschen

// erstes Element im Vektor löschen
TXYValue *pXY = InputValues[i];
if (pXY) delete pXY;
InputValues.erase(InputValues.begin());
  • Vektor sortieren
// als erstes ein Struct definieren, in dem ein
// Vergleichsoperator für die Sortierung implementiert wird
struct SDESCSort
{
    // Liste absteigend anhand des y-Wertes sortieren
    bool operator()(TXYValue *V1, TXYValue *V2)
    {
        return (V1->y > V2->y);
    };
};

// Aufruf der Sortierung
// #include <algorithm> für std::sort nicht vergessen!
std::sort(InputValues.begin(), InputValues.end(), SDESCSort());