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個字符,例如erase(0,1)是刪除第一個字符
](2)erase(position)刪除一個字符的位置(position是一個字符串類型的迭代器)
](3)erase(first,last)刪除從第一個到最后一個字符(first和last是迭代器)
vector中erase函數(shù)可以使用迭代器嗎?為什么我的會報錯呢?
例如實現(xiàn)向量的erase
]如果erase處于啟用狀態(tài)那么這邊走nums.erase刪除(it)和it=nums.erase刪除(它)在兩次操作后繼續(xù)使用它實際上可以產(chǎn)生相同的效果(如果編譯器同意);
實際上nums.erase刪除(it)根據(jù)標準,后面的迭代器應該是無效的,但是如果繼續(xù)使用它,在某些編譯器下,可能不會報告錯誤,就像erase的返回值一樣。如果編譯器認為沒問題,程序就可以運行。
我覺得標準就是標準。如果它違反了標準,它是否可以通過取決于字符。
C 中怎么用erase()刪除vector中重復的元素?
假設(shè)有一組數(shù)組(字符數(shù)組、整數(shù)數(shù)組等),其中需要刪除重復的元素。更方便的方法是使用STL::vector,其中定義了許多成員函數(shù)。通過這些成員函數(shù)的搭配,可以很容易地實現(xiàn)許多任務。
首先,對數(shù)組進行排序:
1。向量< int> sun
2。//向sun添加元素
3。對于(int i=0 i< n i){
4sun.push后退(質(zhì)數(shù)[i])
5。}
6.排序(太陽。開始(), 太陽.end())
其次,使用擦除和唯一功能可以從數(shù)組中刪除重復元素:
1太陽。擦除(唯一(太陽。開始(), 太陽.end()), 太陽.end())
擦除的功能是刪除指定范圍內(nèi)的所有函數(shù)
unique將相鄰的重復元素移到最后一個