C 使用erase介面需要注意!!

2021-10-09 21:44:04 字數 473 閱讀 4954

本來我是不怎麼關注過這個點的,但是今天的一道題把我給難住了,看過答案之後才知道就是因為我對於erase介面使用的不了解造成的,所以特意把這道題拿出來說一下

題目要求是給出以下**的輸出結果:

#include#includeusing namespace std;

int main()

}for (it = a.begin(); it != a.end(); it++)

return 0;

}

第一遍看過去的時候以為正確答案是 100 500

結果答案卻是100 300 300 500

這讓我百思不得其解,最後發現問題出現在erase的返回值上!

erase再刪除當前位置內容後會返回下乙個位置的迭代器,然後再加上迴圈本身自帶的++操作符,整個迴圈過程一共就會跳過2個位置,所以造成了100 300 300 500的結果

介面開發需要注意的

我們在開發 api 應該注意的幾個事項 僅供參考 1 單檔案實現多介面的形式有很多種,例如 if.elseif.或 switch 或 動態方法 也就是tp的這種訪問函式體的形式 2 對於資料的輸出最好用json,json具有相當強大的跨平台性,市場上各大主流程式語言都支援json解析,json正在逐...

C 需要注意點

11 設定static成員變數初值時,不受任何訪問許可權的束縛。可以再還沒有誕生任何物件的時候就處理static型別成員變數,但首先必須初始化它。2 只要access level允許,任何函式都可以訪問static成員變數。但如果你希望在產生任何object之前就訪問其class的private s...

使用Calendar需要注意clear

date是前台傳的值,格式為2014 01 01的形式 如下的 是去date日期當月的最大天數日期 int month integer.parseint date.substring 5,7 取天數 int year integer.parseint date.substring 0,4 取年份 d...