vector刪除指定元素 C 中怎么用erase()刪除vector中重復(fù)的元素?
C 中怎么用erase()刪除vector中重復(fù)的元素?假設(shè)有一組數(shù)組(字符數(shù)組、整數(shù)數(shù)組等),其中需要?jiǎng)h除重復(fù)的元素。更方便的方法是使用STL::vector,其中定義了許多成員函數(shù)。通過這些成員
C 中怎么用erase()刪除vector中重復(fù)的元素?
假設(shè)有一組數(shù)組(字符數(shù)組、整數(shù)數(shù)組等),其中需要?jiǎng)h除重復(fù)的元素。更方便的方法是使用STL::vector,其中定義了許多成員函數(shù)。通過這些成員函數(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.排序(太陽。開始(), 太陽.end())
其次,使用擦除和唯一功能可以從數(shù)組中刪除重復(fù)元素:
1太陽。擦除(唯一(太陽。開始(), 太陽.end()), 太陽.end())
擦除的功能是刪除指定范圍內(nèi)的所有函數(shù)
唯一的是將相鄰的重復(fù)元素移到最后
vector如何獲取并刪除一個(gè)元素?
C實(shí)際刪除的元素vector中的元素使用容器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è)元素。位置.擦除( 位置.開始()I)注意向量的大小在刪除之后發(fā)生了變化,循環(huán)控制條件應(yīng)該更改為c.pop uuu back c的最后一個(gè)元素,返回void。
問題:如何使用iterator刪除vector容器中的元素?
Clear()Clear all elements empty()判斷vector是否為空(返回true時(shí)為null)erase()刪除指定的元素(可以使用指針代替迭代器)iterator erase(iterator LOC)//要?jiǎng)h除的元素的iterator erase(iterator start,iterator end)//要?jiǎng)h除的第一個(gè)元素的迭代器要?jiǎng)h除的第二個(gè)元素的iterator insert(),將該元素插入vector,iterator insert(iterator LOC,const type&val)//在指定位置LOC之前插入一個(gè)Val元素,并返回指向該元素的iterator void insert(iterator LOC,size) type num,const type&val)//在指定位置LOC之前插入具有Val值的num個(gè)元素,void insert(iterator LOC,input) iterator start,input iterator end)//插入間隔[start,end]Pop在指定位置LOCuback()刪除最后一個(gè)元素之前pushuback()在向量末尾添加一個(gè)元素(參數(shù)是要插入的值)