my code is as bellow:
class A{
private:
size_t linearProbing(T k, size_t i);
size_t quadraticProbing(T k, size_t i);
size_t doubleHashing(T k, size_t i);
std::map<std::string, size_t (*)(T, size_t)> probeFunctionMap = {
{"linearProbing", this->linearProbing},
{"quadraticProbing", this->quadraticProbing},
{"doubleHashing", this->doubleHashing}
};
}
And the error is:
error: could not convert '{{"linearProbing", ((HashTableOpeningAddress<int>*)this)->HashTableOpeningAddress<int>::linearProbing}, {"quadraticProbing", ((HashTableOpeningAddress<int>*)this)->HashTableOpeningAddress<int>::quadraticProbing}, {"doubleHashing", ((HashTableOpeningAddress<int>*)this)->HashTableOpeningAddress<int>::doubleHashing}}' from '<brace-enclosed initializer list>' to 'std::map<std::__cxx11::basic_string<char>, long unsigned int (*)(int, long unsigned int), std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, long unsigned int (*)(int, long unsigned int)> > >'
I guess the method I used to init the map is wrong, but I don't know how to correct it.