成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C++中關(guān)于set刪除的一些坑

前言

公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出桂東免費(fèi)做網(wǎng)站回饋大家。

最近工作中需要使用平衡樹維護(hù)操作。遂調(diào)用了C++標(biāo)準(zhǔn)庫里的set,在確保解題思路沒有出錯(cuò)的情況下,我發(fā)現(xiàn)自己始終有一組樣例無法通過。在檢查了很久的細(xì)節(jié)并找了標(biāo)程對跑中間過程以后,我發(fā)現(xiàn)我在使用set做刪除的時(shí)候,迭代器發(fā)生了和我預(yù)想不一樣的變化。

我在一個(gè)函數(shù)中調(diào)用了set的erase操作來刪除某個(gè)迭代器,函數(shù)的傳入?yún)?shù)為要刪除的迭代器,類似如下

set<int> aha;
 
void del(set<int>::iterator it)
{
 //一頓操作
 aha.erase(it);
}

然后我在main中想要刪除一個(gè)迭代器,并左移一位或右移一位迭代器,類似如下

int main()
{
 set<int>::iterator now;
 //一頓操作
 
 //操作1
 now=aha.find(5);
 del(now);
 now--;

 //操作2
 now=aha.find(8);
 del(now);
 now++;
}

上面是我原來的寫法,刪除這個(gè)迭代器所在的位置,然后移位。

但理想很美好,現(xiàn)實(shí)有差距。在我用標(biāo)程對拍以后,我發(fā)現(xiàn)上述操作存在很大問題。

使用erase操作刪除一個(gè)迭代器以后,我訪問該迭代器,他仍舊是原來的值。

但當(dāng)我想要左右移位時(shí),經(jīng)測試發(fā)現(xiàn)不管你左移還是右移,他返回的都是刪除的迭代器在原set中的前一個(gè)位置。
也即

set<int>::iterator now=aha.find(8);
del(now);
/*
現(xiàn)在--now和++now都是同一個(gè)位置
為未刪除now的set中,now的前一個(gè)位置
*/

了解這個(gè)就好辦了,我預(yù)先存下我要刪除的位置,然后迭代器先更新,再調(diào)用刪除即可。

這個(gè)主要還是對STL不夠熟悉造成的,為此,我后來還去翻閱了set中erase操作的函數(shù)原型及返回值。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

分享標(biāo)題:C++中關(guān)于set刪除的一些坑
文章出自:http://jinyejixie.com/article36/ghoepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google網(wǎng)站策劃、標(biāo)簽優(yōu)化微信公眾號、營銷型網(wǎng)站建設(shè)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
梅河口市| 诏安县| 宜春市| 彭阳县| 房产| 孙吴县| 故城县| 木里| 凤庆县| 娄底市| 闽侯县| 定兴县| 宁远县| 乐都县| 章丘市| 会泽县| 高清| 马鞍山市| 合水县| 岳普湖县| 伊川县| 沁水县| 友谊县| 宣城市| 景洪市| 西畴县| 琼结县| 合水县| 开平市| 崇左市| 远安县| 昔阳县| 石渠县| 江山市| 兰坪| 兴山县| 闸北区| 嘉义县| 江口县| 五莲县| 澄城县|