叢集部署中解決定時任務重複執行的問題-redis分散式鎖應用
阿新 • • 發佈:2021-02-07
stringstream用法
1.型別轉換
stringstream stream;
string result = "10000";
int n = 0;
stream << result;//可以看作將result輸入stream的緩衝區
stream >> n;//n等於10000,將stream輸入n(cin)
2.用於儲存一行string資訊
用到getline()函式時,string型別不可用於緩衝,用到stringstream型別,一般用於分開儲存用,分開的資料,如下是用於儲存形如"[1,2,3,4,5,6,7]"的二叉樹資訊。
void input() {
string strLine, str;
getline(cin, strLine);
int x = strLine.find("[");
int y = strLine.find("]");
string index = strLine.substr(x + 1, y - x - 1);
stringstream ss(index);
while (getline(ss, str, ',')) {
zz.push_back(str);
}
}
3.stringstream中的clear()和str()成員函式
**clear函式是ios類的成員函式,用於清除標誌位,這點在多個stringstream物件構造和使用時一定要進行clear,不然之前的緩衝就停留在輸入輸出流中。stringstream型別物件構造麻煩,一般只用一個。
str()函式是stringstream的成員函式,使用無引數函式時返回一個string物件,使用字串變數作為引數時,表示將一個字串初始化給該物件的私有變數。**
string str("How are you? 123 1 4.368");
stringstream ss(str);
cout << ss.str() << endl;
string tmp;
for (int i = 0; i < 3; i++) {
ss >> tmp;
cout << tmp << " ";
}