c++ 利用stringstream和getline分割字串,其中stringstream 是c++提供的串流。
首先了解c++中的輸入輸出流:
cin+流提取運算子》 實現輸入
cout + 流插入運算子<< 實現輸出
定義流物件時,系統會在記憶體中開闢一段緩衝區,用來暫存輸入輸出流的資料。
在執行cout語句時,先把插入的資料存放在輸出緩衝區中,直到輸出緩衝區滿或遇到cout語句中的endl("\n",此時將緩衝區中已有的資料一起輸出,並清空緩衝區。
cin從輸入流中根據變數的型別提取相應長度的位元組。
fstream…
stringstream–串流 #include
stringstream stream;
//定義串流
int a,b;
stream<<
"80"
;//將乙個字串輸出到串流裡面
stream>>a;
//根據變數型別從串流中提取相應長度的位元組
cout<注意:clear()重置流的標誌狀態 str()清空流的記憶體緩衝
stringstream stream;
//定義串流
int a,b;
stream<<
"80"
;//將乙個字串輸入到串流裡面
stream>>a;
//根據變數型別從串流中輸出相應長度的位元組
cout
清空標誌位,並沒有釋放記憶體
"") 釋放stringstream的記憶體
const string& s) 將stringstream中的內容替換為s
stream<<
"90"
;stream>>b;
cout<
vector
split
(string str,
char del)
return ret;
}int
main()
155:最小棧的實現
最容易想到的是借助最小值輔助棧實現
(1)輔助棧:和主棧同步(push pop)更新棧
(2)輔助棧:最小值變化時才push和pop
(3)不使用輔助棧:
public
:typedef
long
long ll;
private
: stack st;
//棧用來記錄當前值與最小值的差值 diff
ll minnum;
//始終用來更新最小值
/*入棧時的差值:指的是當前值與當前最小值的差值 之後再更新最小值*/
//注意上述邏輯
leetcode刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...
leetcode刷題記錄
工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...