5 #include <unordered_map> 6 #include <unordered_set> 15 "<" #S ":" __HERE__ << '>' << S << "</" << #S << '>' 17 #define SHOW(S) std::cerr << S << std::endl 19 #define SHOWV(S) SHOW(V(S)) 21 #define __HERE__ __FILE__ ":" << __LINE__ 23 #define SHOWH(S) SHOW(__HERE__ << ": " << S) 27 template <
typename T,
typename Compare,
typename Alloc>
29 operator<<(ostream& o, set<T, Compare, Alloc>& ts)
32 for (
const auto& t: ts)
42 template <
typename Key,
typename T,
43 typename Hash,
typename KeyEqual,
typename Alloc>
45 operator<<(ostream& o, unordered_map<Key, T, Hash, KeyEqual, Alloc>& ts)
48 for (
const auto& t: ts)
52 o << t.first <<
":" << t.second;
58 template <
typename Key,
typename Hash,
typename KeyEqual,
typename Alloc>
60 operator<<(ostream& o, unordered_set<Key, Hash, KeyEqual, Alloc>& ts)
63 for (
const auto& t: ts)
73 template <
typename T,
typename Alloc>
75 operator<<(ostream& o, vector<T, Alloc>& ts)
78 for (
const auto& t: ts)