yusuke
4/18/2020 - 3:19 AM

stream_operator

template<typename T>
istream& operator >> (istream& is, vector<T>& vs){
  for(T& v: vs) is >> v;
  return is;
}
template<typename T>
ostream& operator << (ostream& os, vector<T>& vs){
  for (const T& v : vs) os << v << " ";
  return os;
}
template<typename T>
ostream& operator << (ostream& os, set<T>& vs){
  for (const T& v : vs) os << v << " ";
  return os;
}
ostream& operator << (ostream& os, map<T>& m){
  for (const auto [k, v] : m) os << "{" << k << "," << v << "}";
  return os;
}