STL Iterator Beispiel
← STL Iteratoren | ● | STL Zeiger →
Beipiel zur Verwendung von Iteratoren anhand der Berechnung der Länge eines GPS-Tracks.
Ein solcher “Track” ist eine Sequenz von 3D-Vektoren, die z.B. in einer std::vector<Vector3D>
oder alternativ in einer std::list<Vector3D>
Container-Klasse gespeichert werden. Die Container-Klasse “GPS-Track” erhalten wir durch Ableitung der entsprechenden STL Klasse und anschließender Spezialisierung durch Hinzufügen der Methode “length”:
{
public:
// ctor
GPSTrack()
: std::list<Vector3D>()
{}
// compute length of 3D "track"
double length()
{
double l = 0.0;
auto last = begin();
for (auto it = begin(); it != end() ; it++)
{
Vector3D d = *it - *last;
l += sqrt(d*d);
last = it;
}
return(l);
}
};
Da hier der C++11 Standard verwendet wird, müssen wir dies im CMakeLists.txt durch Hinzufügen der folgenden Compiler-Option einstellen:
SET(CMAKE_CXX_FLAGS "-std=c++11")
← STL Iteratoren | ● | STL Zeiger →