Как я могу напечатать содержимое любого вектора, используя ostream и template? - PullRequest
0 голосов
/ 26 сентября 2018

Я могу напечатать содержимое любого вектора, используя функцию print_container, которая указана в шаблоне.Я попытался использовать ostream << вместо функции print_container.Не работаетЯ не знаю, как я мог это исправить.Пожалуйста, дайте мне совет. </p>

Спасибо

#include <iostream>
#include <vector>
#include <string>
#include <iterator>
using namespace std;

template<typename C>
void print_container(const C& c)
{
    for(auto p = c.begin(); p != c.end(); ++p)
    {
        cout << *p << ' ';
    }
    cout << '\n';
}

/*
template<typename C>
ostream& operator<<(ostream& os, const C& c)
{
    for(auto p = c.begin(); p != c.end(); ++p)
    {
        os << *p << ' ';
    }
}
*/

int main(void)
{
    string m {"Mary had a little lamb"};
    print_container(m);
    //cout << m;

    vector<string> vs {"red", "blue", "green", "green", "orange", "green"};
    print_container(vs);
    //cout << vs;

    return 0;
}
...