我希望我可以使用 cout << 打印集合/vector/ map 的内容。对于 STL 设计者来说实现起来似乎并不难:假设 << 是为 T 定义的,<< 对于容器来说可以遍历元素并使用 ofstream << 打印它们。
有没有我不知道的打印它们的简单方法?
如果没有,有没有简单的解决方案?我在一些地方读到扩展 STL 类是个坏主意。是这样吗,为什么?
定义一个类似重载打印函数的东西怎么样? 编辑: 我正在寻找一个递归函数,它可以处理......容器的容器 我同意不同的人会喜欢不同的格式,但是可以覆盖的东西总比没有好
最佳答案
可能最简单的输出STL容器的方法是
std::copy(cont.begin(), cont.end(),
std::ostream_iterator<Type>(std::cout, " "));
哪里Type
是 cont
的元素类型(例如,如果 cont
是 std::vector<int>
类型,则 Type
必须是 int
)。
当然不是std::cout
您可以使用任何 ostream。
关于c++ - 为 C++ STL 容器重载 << 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9319813/