From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-03-15 13:11:22
Chris Jefferson wrote:
> Peter Dimov wrote:
>> Dave Harris wrote:
>>> But suppose I have pair< pair<int,int>, pair<int,int> > ? Shouldn't
>>> that yield the same hash value as int ?
>> I don't expect a pair< pair<int, int>, pair<int, int> > to be
>> frequently refactored into an int. So no, I don't think that it
>> should necessarily have the same hash value as an int. Similarly,
>> I don't think that vector< vector<int> > should necessarily have the
>> same hash value as its flattened vector<int> counterpart.
> Just to comment on this specifically, you really, really should have a
> vector<vector<int> > hash to the same value as it's flatterned
Just to clarify, did you mean "should not have" here? Because...
> I have previously written a program where i had a set of
> vector<vector<int> >s, where when flatterned they were all the same,
> and I don't think it's that uncommon..
... this part seems to imply that these vectors should not have the same
hash value, or the unordered_set will degrade into a linked list.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk