2015-09-25 2 views
0

Мне нужно cout вектор. Не только элемент этого, но и все. Например std :: cout < < vectorName; Что-то вроде этого, надеюсь, что это имеет смысл. Любые идеи? Заранее спасибоC++ Возможно ли использовать весь вектор?

+2

'std :: copy' является вашим другом. –

+0

Похоже на следующее: http://stackoverflow.com/q/4850473/2069064 – Barry

+0

@UlrichEckhardt God no. – Barry

ответ

3

Вы можете определить функцию полезности как

template <typename T> 
ostream& operator<<(ostream& output, std::vector<T> const& values) 
{ 
    for (auto const& value : values) 
    { 
     output << value << std::endl; 
    } 
    return output; 
} 

или пробегаться себя

for (auto const& value : values) 
{ 
    std::cout << value << std::endl; 
} 
1

Да, это возможно - если определить оператор < < для вектора. Что-то вроде этого:

template <class T> 
std::ostream& operator<<(ostream& out, const std::vector<T>& container) { 
    out << "Container dump begins: "; 
    std::copy(container.cbegin(), container.cend(), std::ostream_iterator<T>(" ", out)); 
    out << "\n"; 
    return out; 
} 
Смежные вопросы