mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
operator==
This commit is contained in:
@ -485,6 +485,43 @@ void HashTable<T, Key, Hash>::operator=(const HashTable<T, Key, Hash>& ht)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class T, class Key, class Hash>
|
||||||
|
bool HashTable<T, Key, Hash>::operator==(const HashTable<T, Key, Hash>& ht)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
// Are all my elements in ht?
|
||||||
|
for (const_iterator iter = begin(); iter != end(); ++iter)
|
||||||
|
{
|
||||||
|
const_iterator fnd = ht.find(iter.key());
|
||||||
|
|
||||||
|
if (fnd == ht.end() || (fnd() != iter()))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Are all ht elements in me?
|
||||||
|
for (const_iterator iter = ht.begin(); iter != ht.end(); ++iter)
|
||||||
|
{
|
||||||
|
const_iterator fnd = find(iter.key());
|
||||||
|
|
||||||
|
if (fnd == end() || (fnd() != iter()))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class T, class Key, class Hash>
|
||||||
|
bool HashTable<T, Key, Hash>::operator!=(const HashTable<T, Key, Hash>& ht)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return !(operator==(ht));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|||||||
@ -223,6 +223,15 @@ public:
|
|||||||
//- Assignment
|
//- Assignment
|
||||||
void operator=(const HashTable<T, Key, Hash>&);
|
void operator=(const HashTable<T, Key, Hash>&);
|
||||||
|
|
||||||
|
//- Equality. Two hashtables are equal if all contents of first are
|
||||||
|
// also in second and vice versa. So does not depend on table size or
|
||||||
|
// order!
|
||||||
|
bool operator==(const HashTable<T, Key, Hash>&) const;
|
||||||
|
|
||||||
|
//- The opposite of the equality operation. Takes linear time.
|
||||||
|
bool operator!=(const HashTable<T, Key, Hash>&) const;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// STL type definitions
|
// STL type definitions
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user