Как использовать ostream_iterator <> для универсального контейнера во время компиляции? - PullRequest
2 голосов
/ 03 января 2011

Я бы хотел использовать 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 Ответ

5 голосов
/ 03 января 2011

Вы можете посмотреть тип контейнера как тип

typename T::value_type

В этом случае я верю, что вы хотите

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...