是否有可能实现一个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