读书人

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

发布时间: 2012-03-01 10:25:46 作者: rapoo

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 测试的。

读书人网 >C++

热点推荐