在刷leetcode中遇到了一些語法問題,在這裡記錄一下,也希望能對其他人有幫助
i++ :先引用後增加i+=2相當於i=i+2;++i :先增加後引用
i++ :先在i所在的表示式中使用i的當前值,後讓i加1
++i :讓i先加1,然後在i所在的表示式中使用i的新值
i=+2就是i=2;//這裡的+為正號,也可以不寫
看乙個例子
int x;
float curr = x/2;//這裡相當於兩個int型變數相除,得到的結果四捨五入保留整數部分,還是乙個int型變數,然後賦值給curr
int x;
int curr = (float)x/2;//這裡相當於把x提公升成float型別,這樣以後x/2的結果就是乙個float型別,精度不會丟失
int x;
int curr = (float)(x/2);//這樣做x/2的精度會有丟失,這樣做會先求x/2,得到乙個整數結果;然後講計算結果提公升到float型,這時的精度已經丟失了
這個時候要檢查兩個地方:
1.控制迴圈的條件是否正確;
2.控制迴圈的變數是否正確。
abs()返回的是整數;
fabs()返回float型別。
map變數想要改變value值,應該採用直接賦值的方法,不能用insert方法,insert不會改變原來的value值。
map_s.insert(pair(s[i], i));//map的插入形式
map[key].push_back(value);//key可以是string也可以是int
iterator是迭代容器,這樣寫相當於mv的頭指標,iter++則指向下一位
for(map<
string
, vector
<
string
>
>
:: iterator
iter=mv
.begin(); iter!=mv.end(); iter++)
1.一維vector:sort預設對vector進行公升序排列(從小到大)
2.對string排序:string中的字母按字典序排列(來自leetcode 49.group anagrams)
3.對vector排序:vector各個元素是按字典序排列的,每個vector元素是string,也是按字典序排列。
4.sort進行降序排列:需要自己寫乙個函式,放到sort的引數列表中。
bool cmp(int a,int b)
* interval(int s, int e) : start(s), end(e) {}
* };
*/
如果對start進行公升序排列,那麼cmp函式應該這樣寫:
static bool comp(interval& a, interval& b){
return a.start
end() 函式返回乙個指向當前vector末尾元素的下一位置的迭代器.要訪問末尾元素,需要先將此迭代器減1。
back() 函式返回當前vector最末乙個元素的引用。
見leetcode
77.c
ombinations
如果要比較vector最後乙個元素與它前乙個元素的大小,應該這麼寫:
if( tem.back()<*(tem.end()-2) )//判斷最後乙個元素是否小於它前乙個元素
Python技巧 不斷更新中
1.讀取檔案的內容 filepath 檔案路徑 lambda f f.read f.close file filepath 0 2.將內容寫入到檔案中 lambda f,d f.write d f.close file r d a.txt w 要寫入的資料 3.根據正規表示式過濾資料夾中的檔案 im...
C 學習積累 不斷更新
分享乙個c 的學習 1.結構體 struct 所有的成員在預設條件下都是 public 類 class 所有資料成員在預設條件下都是private 2.建構函式 採用的是類名,前邊不需要加返回值。3.在定義的類後邊一定要加 例如 void 4.類的繼承。include class animal vo...
C語言基礎(不斷更新)
1.memcpy memmove memccpy的區別 字串函式功能查詢 memcpy要求源串和目的串不能重疊 memccpy copy直至遇到由引數指定的ch.memmove 源串和目的串可以重疊。2.strcpy寫法 面試常考題型之strcpy寫法 注意丟擲異常,如果指標無效,丟擲異常,thro...