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)