为什么在C++中vector string对象不能直接输出,需要自己遍历,然后逐个输出.

如题所述

第1个回答  2019-02-14
一个原因是标准库不知道怎样才是最合适的输出方式,比如每个元素间要不要用回车分隔,还是用逗号分隔,再说即使不能直接输出,写起来也很简单,如果是C++11的话,写成
for (auto&& i:text) cout << i <<' ';就可以了
真的需要cout
<<
text;这种写法的话,自己重载一个
operator<<
函数也是很轻松的事,因为你自己知道怎样输出最合适,以下就是在不用C++11的情况下,一个简单且可扩展的
operator<<
重载
std::ostream& operator<<(std::ostream& o, std::vector
const& v)
{
for (std::vector
::iterator i=v.begin(), end=v.end();
i != end;
++i)
o << *i << ' ';
}
相似回答
大家正在搜