是否有可能實現一個C++函數,它給出了每std::vector<T>
的字符串表示,只要T
類型的元件可以被附加到輸出流等字符串表示::矢量<T>
T x;
...
std::cout << x << std::endl;
字符串表示應該像
[x, y, z]
我已經嘗試以下,但什麼都要?
是什麼?
template <typename T> std::string vectorToString(std::vector<T>& vec) {
std::string s;
for (T element : vec) {
?
}
return s;
}
參見http://stackoverflow.com/questions/4850473/pretty-print-c-stl-容器 – Dan
如果你有興趣自己實現這一點,你可能想了解SFINAE,追蹤decltype()和std :: enable_if :)但它是可行的,它需要上述工具以便在編譯時檢測如果T是流式的。 – bluescarni
我認爲將簽名更改爲const ref會更好:vectorToString(** const ** std :: vector < T >&vec) – borisbn