Den Unterschied zwischen Löschen und Entfernen verstehen
Der std::remove-Algorithmus wurde entwickelt, um nicht gelöschte Elemente an den Anfang des zu verschieben Container, überlappende gelöschte Elemente. Dies liegt an seiner Vielseitigkeit bei der Arbeit mit jedem Forward-Iterator-Paar, einschließlich solchen, die keine Elemente löschen können.
Unterscheidung von Erase und Remove
Erase entfernt die durch std identifizierten Elemente ::entfernen. Es reduziert die Größe des Containers, indem es die gelöschten Elemente entfernt. Im Gegensatz dazu entfernt Remove keine Elemente, sondern verschiebt stattdessen nicht gelöschte Elemente nach vorne, um gelöschte zu überschreiben.
Beispiel mit std::remove und einem Vektor
Im Mit dem bereitgestellten Testcode enthält der Vektor a zwei Elemente: 1 und 2. Durch Anwenden von std::remove auf a werden alle Vorkommen von 1 entfernt und 2 an den Anfang des Vektors verschoben. Die Größe von a bleibt jedoch 2, da der vom gelöschten Element belegte Speicher nicht freigegeben wird.
Beispiel mit std::remove und Erase
Wenn std:: Wenn Remove und std::erase zusammen verwendet werden, werden die gelöschten Elemente entfernt und die Größe des Containers wird angepasst, um die tatsächliche Anzahl der Elemente widerzuspiegeln.
Fazit
std::remove kann unabhängig verwendet werden, um nicht gelöschte Elemente innerhalb eines Containers nach vorne zu verschieben. In den meisten Fällen wird es jedoch in Verbindung mit std::erase verwendet, um die gelöschten Elemente zu entfernen und die Größe des Containers zu aktualisieren.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „std::remove' und „std::erase' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!