#include <iostream>
#include <vector>
// // C++ template to print vector container elements
template <typename T>
std::ostream &operator<<(std::ostream &os, const std::vector<T> &v)
{
os << "[";
for (int i = 0; i < v.size(); ++i)
{
os << v[i];
if (i != v.size() - 1)
os << ", ";
}
os << "]\n";
return os;
}
//Operator overload >> (std::cin)
template <typename T>
std::istream &operator>>(std::istream &in, std::vector<T> &v)
{
for(int i =0;i<v.size();i++)
{
in>>v[i];
}
return in;
}
//TEST
// ↓
int main()
{
std::vector<int> vec{4, 2, 17, 11, 15};
std::vector<int> dupa;
std::cin >> dupa;
std::cout << vec;
return 0;
}
How can i overload operator >> ?? I don't know how to do it with std :: istream, I get an error "Core Dump (Segmentation fault)" :( I saw such a task somewhere on the Internet and I wanted to do it, but there is no solution. I don't want to use "v.push_back (..)"
Aucun commentaire:
Enregistrer un commentaire