首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cout输出vector的内容,该如何处理

2012-03-01 
cout输出vector的内容templatetypenameTostream&operator (ostream&ostr,constvector T &vec){for(

cout输出vector的内容
template   <typename   T>
ostream&   operator < <(ostream&   ostr,const   vector <T> &   vec)
{
        for(typename   vector <T> ::const_iterator   iter=vec.begin();
                        iter!=vec.end();iter++)
                cout < <*iter < < "     ";
}

如下代码应该输出vector <T> &   vec中的所有内容,但是造成了core   dump,各位可否给个解释?谢了!

我用的是g++   4.2.11

[解决办法]
只有一个问题,你的这个模板函数没有返回值,所以如果你 < < v < < x 这种情况下会出错。
template <typename T> ostream& operator < <(ostream& ostr, const vector <T> & vec) {
for (typename vector <T> ::const_iterator iter=vec.begin(); iter!=vec.end(); iter++) {
cout < < *iter < < endl;
}

return ostr;
}

如上,加个返回值应该没问题了,我用mingw中的g++ 3.4.2 测试的。

热点排行