#include <initializer_list>
namespace std {
// クラステンプレート unordered_set
template <class Key,
class Hash = std::hash<Key>,
class Pred = std::equal_to<Key>,
class Allocator = std::allocator<Key> >
class unordered_set;
// クラステンプレート unordered_multiset
template <class Key,
class Hash = std::hash<Key>,
class Pred = std::equal_to<Key>,
class Allocator = std::allocator<Key> >
class unordered_multiset;
template <class Key, class Hash, class Pred, class Allocator>
void swap(unordered_set<Key, Hash, Pred, Allocator>& x,
unordered_set<Key, Hash, Pred, Allocator>& y);
template <class Key, class Hash, class Pred, class Allocator>
void swap(unordered_multiset<Key, Hash, Pred, Allocator>& x,
unordered_multiset<Key, Hash, Pred, Allocator>& y);
template <class Key, class Hash, class Pred, class Allocator>
bool operator==(const unordered_set<Key, Hash, Pred, Allocator>& a,
const unordered_set<Key, Hash, Pred, Allocator>& b);
template <class Key, class Hash, class Pred, class Allocator>
bool operator!=(const unordered_set<Key, Hash, Pred, Allocator>& a,
const unordered_set<Key, Hash, Pred, Allocator>& b);
template <class Key, class Hash, class Pred, class Allocator>
bool operator==(const unordered_multiset<Key, Hash, Pred, Allocator>& a,
const unordered_multiset<Key, Hash, Pred, Allocator>& b);
template <class Key, class Hash, class Pred, class Allocator>
bool operator!=(const unordered_multiset<Key, Hash, Pred, Allocator>& a,
const unordered_multiset<Key, Hash, Pred, Allocator>& b);
}