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