我需要cout一个向量。不仅仅是它的一个元素,而是整个事物。 例如std :: cout<< vectorName; 这样的事情,希望它有意义。 有任何想法吗? 提前致谢
答案 0 :(得分:4)
您可以定义像
这样的实用程序功能template <typename T>
ostream& operator<<(ostream& output, std::vector<T> const& values)
{
for (auto const& value : values)
{
output << value << std::endl;
}
return output;
}
或者自己重复
for (auto const& value : values)
{
std::cout << value << std::endl;
}
答案 1 :(得分:1)
是的,有可能 - 如果你定义运算符&lt;&lt;为你的矢量。像这样:
template <class T>
std::ostream& operator<<(ostream& out, const std::vector<T>& container) {
out << "Container dump begins: ";
std::copy(container.cbegin(), container.cend(), std::ostream_iterator<T>(" ", out));
out << "\n";
return out;
}