std::vector<T,Allocator>::clear
Von cppreference.com
void clear(); |
(noexcept seit C++11) (constexpr seit C++20) |
|
Löscht alle Elemente aus dem Container. Nach diesem Aufruf gibt size() Null zurück.
Macht alle Referenzen, Zeiger und Iteratoren ungültig, die sich auf enthaltene Elemente beziehen. Alle Iteratoren jenseits des Endes werden ebenfalls ungültig.
Lässt die capacity() des Vektors unverändert (Hinweis: Die Einschränkung des Standards hinsichtlich der Änderungen der Kapazität befindet sich in der Spezifikation von reserve(), siehe SO).
Inhalt |
[bearbeiten] Komplexität
Linear in Bezug auf die Größe des Containers, d. h. die Anzahl der Elemente.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <string_view> #include <vector> void print_info(std::string_view rem, const std::vector<int>& v) { std::cout << rem << "{ "; for (const auto& value : v) std::cout << value << ' '; std::cout << "}\n"; std::cout << "Size=" << v.size() << ", Capacity=" << v.capacity() << '\n'; } int main() { std::vector<int> container{1, 2, 3}; print_info("Before clear: ", container); container.clear(); print_info("After clear: ", container); }
Ausgabe
Before clear: { 1 2 3 }
Size=3, Capacity=3
After clear: { }
Size=0, Capacity=3Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 2231 | C++11 | Die Komplexitätsgarantie wurde in C++11 irrtümlich ausgelassen. | Komplexität als linear bestätigt |
[bearbeiten] Siehe auch
| entfernt Elemente (public member function) |