要實現的效果:
:: main()
map> temp= make_test_val();
cout<< tostring(temp);
用模板實現tostring(任意型別) 然後就方便了
以下是**:
#include#includeusing namespace std;
//---tostring---
//builder
class tostring_bulider
void prefix()
templatevoid push(const t& item)else
_str+= ::tostring(item);
}void suffix()
string tostring()const
};class tostring_map_bulider";
_comma= ", ";
_eq= ":";
}void prefix()
templatevoid push(const t& item)else
_str+= ::tostring(item.first)+ _eq+ ::tostring(item.second);
}void suffix()
string tostring()const
};//etc.
//default type
string tostring(const string& s)
//system type
templatestring tostring(const t& v)
template<>
string tostring(const char& v)
template<>
string tostring(const bool& v)
//etc.
//container
templatestring tostring(const t& v, tfmt fmter)
//std container
templatestring tostring(const vector& v)
templatestring tostring(const map& v)
//etc.
但是這樣顯示出來是這樣的:
可以新增以下**:
class my_tostring_map_bulider: public tostring_map_bulider
void push(const pair>& item)else
_str+= ::tostring(item.first)+ _eq+ tostring_vector_bool(item.second);
}};
然後這樣用:
:: main()
map> temp= make_test_val();
cout<< tostring(temp, my_tostring_map_bulider());
輸出是這樣的:
Oracle的解除安裝很麻煩
1 首先在服務中停止所有的oracle服務 2 開始 程式 oracle oradb11g home1 oracle installation products universal installer,單擊 解除安裝產品 全部展開 然後選中除 oradb11g home1 外的全部目錄,進行刪除 3...
解決FireFox下 使用event很麻煩 的問題
在firefox下編寫事件處理函式是很麻煩的事.因為firefox並沒有 window.event 如果要得到 event 物件,就必須要宣告時間處理函式的第乙個引數為event.所以為了相容ie與firefox,一般的事件處理方法為 btn.nclick handle btn click func...
解決FireFox下 使用event很麻煩 的問題
在firefox下編寫事件處理函式是很麻煩的事.因為firefox並沒有 window.event 如果要得到 event 物件,就必須要宣告時間處理函式的第乙個引數為event.所以為了相容ie與firefox,一般的事件處理方法為 btn.nclick handle btn click func...