Die "normale" Art und Weise ein Element aus einem Vektor zu löschen geht so:std :: vector :: erase vs "swap und Pop"
vec.erase(vec.begin() + index);
Aber in der Theorie ist es schneller gerade dies zu tun:
if (vec.size() >= 2)
{
std::swap(vec.begin() + index, vec.end() - 1);
vec.pop_back();
}
else
{
vec.clear();
}
Gibt es einen Grund, letzteres nicht zu verwenden?
Sie brauchen den normalen Weg, wenn Sie Ordnung bewahren müssen. – zch
Wenn Sie schnell gelöscht werden müssen, können Sie immer eine verkettete Liste verwenden. – CompuChip
@CompuChip Das wird jedoch langsamer als das zweite Beispiel, und verkettete Listen sind im Prinzip langsam-standardmäßig. – Veedrac