#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;
}