57(
const std::unordered_map<_keyT, _valueT, _Hash, _Pred, _Alloc> & a,
58 const std::unordered_map<_keyT, _valueT, _Hash, _Pred, _Alloc> & b)
60 if (a.size() != b.size())
62 typename std::unordered_map<_keyT, _valueT, _Hash, _Pred, _Alloc>::const_iterator
64 for (ai = a.begin(); ai != a.end(); ++ai) {
65 bi = b.find(ai->first);
68 if (bi->second != ai->second)
84(
const std::unordered_map<_keyT, _valueT, _Hash, _Pred, _Alloc> & a,
85 const std::unordered_map<_keyT, _valueT, _Hash, _Pred, _Alloc> & b)
100(
const std::unordered_multimap<_keyT, _valueT, _Hash, _Pred, _Alloc> & a,
101 const std::unordered_multimap<_keyT, _valueT, _Hash, _Pred, _Alloc> & b)
104 if (a.size() != b.size())
106 typedef typename std::unordered_multimap<_keyT, _valueT, _Hash, _Pred, _Alloc>::const_iterator ConstIterator;
108 for (ai = a.begin(); ai != a.end(); ++ai) {
109 std::pair<ConstIterator,ConstIterator> aiRange =
110 a.equal_range(ai->first);
111 std::pair<ConstIterator,ConstIterator> biRange =
112 b.equal_range(ai->first);
115 if (std::distance(aiRange.first, aiRange.second)
116 != std::distance(biRange.first, biRange.second)) {
121 size_t aCount = 0, bCount = 0;
122 ConstIterator ari = aiRange.first;
123 for ( ; ari != aiRange.second; ++ari) {
125 for (ri = aiRange.first; ri != aiRange.second; ++ri) {
126 if (ri->second == ari->second) {
130 for (ri = biRange.first ; ri != biRange.second; ++ri) {
131 if (ri->second == ari->second) {
136 if (aCount != bCount) {
153(
const std::unordered_multimap<_keyT, _valueT, _Hash, _Pred, _Alloc> & a,
154 const std::unordered_multimap<_keyT, _valueT, _Hash, _Pred, _Alloc> & b)
169(
const std::unordered_set<_valueT, _Hash, _Pred, _Alloc> & a,
170 const std::unordered_set<_valueT, _Hash, _Pred, _Alloc> & b)
172 if (a.size() != b.size())
174 typename std::unordered_set<_valueT, _Hash, _Pred, _Alloc>::const_iterator
176 for (ai = a.begin(); ai != a.end(); ++ai) {
196(
const std::unordered_set<_valueT, _Hash, _Pred, _Alloc> & a,
197 const std::unordered_set<_valueT, _Hash, _Pred, _Alloc> & b)
212(
const std::unordered_multiset<_valueT, _Hash, _Pred, _Alloc> & a,
213 const std::unordered_multiset<_valueT, _Hash, _Pred, _Alloc> & b)
216 if (a.size() != b.size())
218 typedef typename std::unordered_multiset<_valueT, _Hash, _Pred, _Alloc>::const_iterator ConstIterator;
220 for (ai = a.begin(); ai != a.end(); ++ai) {
221 std::pair<ConstIterator,ConstIterator> aiRange = a.equal_range(*ai);
222 std::pair<ConstIterator,ConstIterator> biRange = b.equal_range(*ai);
225 if (std::distance(aiRange.first, aiRange.second)
226 != std::distance(biRange.first, biRange.second)) {
243(
const std::unordered_multiset<_valueT, _Hash, _Pred, _Alloc> & a,
244 const std::unordered_multiset<_valueT, _Hash, _Pred, _Alloc> & b)