erase函數(shù)用法 C 中string中的erase函數(shù)怎么使用?
C 中string中的erase函數(shù)怎么使用?erase函數(shù)的原型如下:(1)string&erase(size)t pos=0,size_tn=NPOs)(2)iterator erase(ite
C 中string中的erase函數(shù)怎么使用?
erase函數(shù)的原型如下:
(1)string&erase(size)t pos=0,size_tn=NPOs)
(2)iterator erase(iterator position)
(3)iterator erase(iterator first,iterator last)
即有三種用法:
(1)erase(pos,n)刪除從pos開始的n個(gè)字符,例如erase(0,1)是刪除第一個(gè)字符
](2)erase(position)刪除一個(gè)字符的位置(position是一個(gè)字符串類型的迭代器)
](3)erase(first,last)刪除從第一個(gè)到最后一個(gè)字符(first和last是迭代器)
vector中erase函數(shù)可以使用迭代器嗎?為什么我的會(huì)報(bào)錯(cuò)呢?
例如實(shí)現(xiàn)向量的erase
]如果erase處于啟用狀態(tài)那么這邊走nums.erase刪除(it)和it=nums.erase刪除(它)在兩次操作后繼續(xù)使用它實(shí)際上可以產(chǎn)生相同的效果(如果編譯器同意);
實(shí)際上nums.erase刪除(it)根據(jù)標(biāo)準(zhǔn),后面的迭代器應(yīng)該是無效的,但是如果繼續(xù)使用它,在某些編譯器下,可能不會(huì)報(bào)告錯(cuò)誤,就像erase的返回值一樣。如果編譯器認(rèn)為沒問題,程序就可以運(yùn)行。
我覺得標(biāo)準(zhǔn)就是標(biāo)準(zhǔn)。如果它違反了標(biāo)準(zhǔn),它是否可以通過取決于字符。
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ù)
unique將相鄰的重復(fù)元素移到最后一個(gè)