vector erase函數(shù)用法 C 中怎么用erase()刪除vector中重復(fù)的元素?
C 中怎么用erase()刪除vector中重復(fù)的元素?假設(shè)有一組數(shù)組(字符數(shù)組、整數(shù)數(shù)組等),其中需要?jiǎng)h除重復(fù)的元素。更方便的方法是使用STL::vector,其中定義了許多成員函數(shù)。通過(guò)這些成員
C 中怎么用erase()刪除vector中重復(fù)的元素?
假設(shè)有一組數(shù)組(字符數(shù)組、整數(shù)數(shù)組等),其中需要?jiǎng)h除重復(fù)的元素。更方便的方法是使用STL::vector,其中定義了許多成員函數(shù)。通過(guò)這些成員函數(shù)的搭配,可以很容易地實(shí)現(xiàn)許多任務(wù)。
首先,對(duì)數(shù)組進(jìn)行排序:
1。向量< int> sun
2。//向sun添加元素
3。對(duì)于(int i=0 i< n i){
4sun.push后退(質(zhì)數(shù)[i])
5。}
6.排序(太陽(yáng)。開(kāi)始(), 太陽(yáng).end())
其次,可以使用擦除和唯一功能從數(shù)組中刪除重復(fù)元素:
1太陽(yáng)。擦除(唯一(太陽(yáng)。開(kāi)始(), 太陽(yáng).end()), 太陽(yáng).end())
擦除的功能是刪除指定范圍內(nèi)的所有函數(shù)
唯一移動(dòng)相鄰的副本元素到最后
沒(méi)有必要自己寫(xiě)。矢量的擦除將自動(dòng)完成此操作。矢量擦除的實(shí)現(xiàn)是將以下元素復(fù)制到所有以前的元素。在最壞的情況下,擦除的復(fù)雜度是O(n)。
c vector如何erase?
C vector中元素的實(shí)際刪除使用容器vecrot中的STD::vector::erase()方法。在C中,STD::remove()不會(huì)刪除元素,因?yàn)槿萜鞯拇笮。ǎ┎粫?huì)改變,只會(huì)替換元素。Code:STD::vector::erase()函數(shù)原型:iterator erase(iterator position)//刪除指定的元素iterator erase(iterator first,iterator last)//刪除指定范圍內(nèi)的元素。返回值:指向被刪除元素(或范圍)的下一個(gè)元素。位置.擦除( 位置.開(kāi)始()I)注意向量的大小在刪除之后發(fā)生了變化,循環(huán)控制條件應(yīng)該更改為c.pop uuu back c的最后一個(gè)元素,返回void。