Tweak the hash equality documentation a little.

[SVN r7116]
This commit is contained in:
Daniel James
2007-06-20 20:47:51 +00:00
parent 17b4216b49
commit 6cee070198

View File

@@ -8,7 +8,7 @@
While the associative containers use an ordering relation to specify how the While the associative containers use an ordering relation to specify how the
elements are stored, the unordered associative containers use an equality elements are stored, the unordered associative containers use an equality
predicate and a hash function. For example [classref boost::unordered_set] predicate and a hash function. For example, [classref boost::unordered_set]
is declared as: is declared as:
template<typename Value, template<typename Value,
@@ -20,9 +20,7 @@ is declared as:
The hash function comes first as you might want to change the hash function The hash function comes first as you might want to change the hash function
but not the equality predicate, while if you were to change the behaviour but not the equality predicate, while if you were to change the behaviour
of the equality predicate you would have to change the hash function to match of the equality predicate you would have to change the hash function to match
it. it. So, if you wanted to use the
For example, if you wanted to use the
[@http://www.isthe.com/chongo/tech/comp/fnv/ FNV-1 hash] you could write: [@http://www.isthe.com/chongo/tech/comp/fnv/ FNV-1 hash] you could write:
``[classref boost::unordered_set]``<std::string, hash::fnv_1> words; ``[classref boost::unordered_set]``<std::string, hash::fnv_1> words;
@@ -31,7 +29,7 @@ An example implementation of FNV-1, and some other hash functions are supplied
in the examples directory. in the examples directory.
Alternatively, you might wish to use a different equality function. If so, make Alternatively, you might wish to use a different equality function. If so, make
sure you use a hash function that matches it. For example, a sure you use a hash function that matches it. So to implement a
case-insensitive dictionary: case-insensitive dictionary:
struct iequal_to struct iequal_to
@@ -66,7 +64,7 @@ case-insensitive dictionary:
boost::unordered_map<std::string, word_info, ihash, iequal_to> boost::unordered_map<std::string, word_info, ihash, iequal_to>
idictionary; idictionary;
A more generic version of this example is available at: A more generic version is available at:
[@../../libs/unordered/examples/case_insensitive.hpp /libs/unordered/examples/case_insensitive.hpp] [@../../libs/unordered/examples/case_insensitive.hpp /libs/unordered/examples/case_insensitive.hpp]
[h2 Custom Types] [h2 Custom Types]