#include <cstdlib>
#include <tuple>
#include <unordered_map>
#include <vector>
#include <boost/functional/hash.hpp> /* hash_combine */
template <typename T>
struct vectorHasher{
std::size_t operator()(std::vector<T> const &in) const
{
using boost::hash_value;
using boost::hash_combine;
// Start with a hash value of 0
std::size_t seed = 0;
T value;
for (int i=0; i< in.size(); i++)
{
value = static_cast<T>(in[i]);
hash_combine(seed, hash_value(value));
}
return seed;
}
};
int main()
{
typedef std::unordered_map< std::vector<std::size_t>, int, vectorHasher<std::size_t> > map_type;
map_type mymap;
std::vector<size_t> vec (3,100);
mymap[vec] = 1;
return 0;
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDx0dXBsZT4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxib29zdC9mdW5jdGlvbmFsL2hhc2guaHBwPiAvKiBoYXNoX2NvbWJpbmUgKi8KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CgpzdHJ1Y3QgdmVjdG9ySGFzaGVyewpzdGQ6OnNpemVfdCBvcGVyYXRvcigpKHN0ZDo6dmVjdG9yPFQ+IGNvbnN0ICZpbikgY29uc3QKewogICAgdXNpbmcgYm9vc3Q6Omhhc2hfdmFsdWU7CiAgICB1c2luZyBib29zdDo6aGFzaF9jb21iaW5lOwogICAgLy8gU3RhcnQgd2l0aCBhIGhhc2ggdmFsdWUgb2YgMAogICAgc3RkOjpzaXplX3Qgc2VlZCA9IDA7CiAgICBUIHZhbHVlOwogICAgZm9yIChpbnQgaT0wOyBpPCBpbi5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PFQ+KGluW2ldKTsKICAgICAgICBoYXNoX2NvbWJpbmUoc2VlZCwgaGFzaF92YWx1ZSh2YWx1ZSkpOwogICAgfQogICAgcmV0dXJuIHNlZWQ7Cn0KfTsKCgppbnQgbWFpbigpCnsKdHlwZWRlZiBzdGQ6OnVub3JkZXJlZF9tYXA8IHN0ZDo6dmVjdG9yPHN0ZDo6c2l6ZV90PiwgaW50LCB2ZWN0b3JIYXNoZXI8c3RkOjpzaXplX3Q+ID4gbWFwX3R5cGU7Cm1hcF90eXBlIG15bWFwOwoKc3RkOjp2ZWN0b3I8c2l6ZV90PiB2ZWMgKDMsMTAwKTsKbXltYXBbdmVjXSA9IDE7CgpyZXR1cm4gMDsKfQ==