如何使用ostream_iterator<>对于编译时的通用容器?

时间:2011-01-03 04:14:36

标签: c++ stl

我想使用copy()打印出类型为T的容器的内容。我试过:

template<typename T>
void print_con( const T& con, const string& sep = ", ", const string& ms = "" ) {
 cout << ms << endl;
 copy( con.begin(), con.end(), ostream_iterator<?>( cout, sep ) ); 
}

我应该更换什么?与?

谢谢,

1 个答案:

答案 0 :(得分:5)

您可以将类型设置为

类型
typename T::value_type

在这种情况下,我相信你想要的是

copy( con.begin(), con.end(), ostream_iterator<typename T::value_type>( cout, sep.c_str() ) );

希望这有帮助!