準備工作...
upper_bound(S, S+n, num) 非下降序列S,返回第一個大於num的值的指針 1 2 2 2 3
lower_bound,第一個大於等於num的值的指針 1 2 2 2 3
string A,B A.find(B) 返回B出現在A中位置 沒有就返回-1
A.c_str() string轉成c式字符數組 A.substr(0, 2) 臨時一個string存A的前兩個字符(A[0],A[1])(區間是前開後閉)
stringstream ss; ss.clear()神他媽清空狀態,ss.str("")清空內容
scanf %c時讀入任何字符包括空格tab回車 其他情況以這三個作為分隔
緩沖區: 空格233空格, scanf%d 第一個空格拋棄 寫入233 第二個空格會留在緩沖區
gets讀到回車結束,並且會把回車留在緩沖區
%*d空讀,讀了但是不寫入: scanf( "%d %*c %d", &x, &y );
sscanf(char指針, “控制格式”, 寫入的變量)把字符數組寫入變量裏,配合gets食用更加
數字和字符連續出現要讀 scanf“%d%s”可破 (入坑時被%c騙了)
(1,2) (2,3) (3,4) 這樣有任意空格的 scanf("空格(%d,%d)", ...)可破
set.insert(233)
set<int, mycmp>s mycmp可以是定義了排序規則的結構體 仿函數什麽的
map<char, int, mycmp> map排序是排第一個東西
map<string,float>m; m["jack"]=98.0; m["mike"]=87.5; m["jane"]=100.0; m["babala"]=78.0; m.erase("jane");臭名昭著的給字符串們標號
map[] = 直接修改鍵值,會覆蓋掉之前的(如果有)
mapStudent.insert(pair<int, string>(1, "student_one")); 插入pair 感覺好記,如果原來有鍵值就不會插入這個
mapStudent.insert(map<int, string>::value_type (1, "student_one")); 第二種插入
set.find()返回找到元素的叠代器 set.count() 返回元素的個數(當然是0/1)
queue priority_queue deque太常用...list bitset不常用...跳過了...
%o 八進制 %x 十六進制 輸出%: %%
準備工作...