Я хочу сделать функцию MapIf
в классе Map. MapIf
будет называться так:функция, которая получает указатель на функцию и указатель на класс?
void addThree(int& n) {
n += 3;
}
class startsWith {
char val;
public:
startsWith(char v) : val(v) {};
bool operator()(const std::string& str) {
return str.length() && char(str[0]) == val;
}
};
int main(){
...
startsWith startWithB('B');
Map<std::string, int> msi;
MapIf(msi, startWithB, addThree);
return 0;
}
Что бы декларация MapIf
?
void MapIf(const Map& map, class condition, void (*function)(ValueType));
это нормально?
Интересно, как вы узнали, как выглядит вызов функции, но не прототип функции. –
Является ли Карта как в std :: map (ассоциативный контейнер) или как в map-reduce? (Выполните операцию над каждым элементом в последовательности). Может быть и здесь, поскольку вы ищете, имеет ли ключ предикат, а затем работает по его значению. – CashCow