本來我是不怎麼關注過這個點的,但是今天的一道題把我給難住了,看過答案之後才知道就是因為我對於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...