Самый простой способ выбросить контейнер - это, вероятно, просто использовать std::copy()
.Например, я обычно использую что-то вроде этого:
template <typename C>
std::string format(C const& c) {
std::ostringstream out;
out << "[";
if (!c.empty()) {
std::copy(c.begin(), --c.end(),
std::ostream_iterator<typename C::value_type>(out, ", "));
out << c.back();
}
out << "]";
return out.str();
}
Да, это не всегда работает, но работает для моих нужд.Это фактически показывает одну из проблем, почему в стандартной библиотеке нет вывода для контейнеров: существует много разных способов форматирования контейнеров.Что еще хуже, отформатированный вывод должен быть читаемым, где все становится по-настоящему весело.Все это выполнимо, но я не знаю о соответствующем предложении.