これらは、コンテナーstd::map用std::vectorと Lambda 式を使用したコンテナー用の 2 つのオーバーロードされた関数です。
pairLambda 式の型 (私の場合はペアの 2 番目) と通常の範囲型 ( vector、dequeなど)をチェックできるテンプレート関数にする方法はありますか?
bool isPlayerIn(vector<Player*> players, int id) {
vector<Player*>::iterator found = find_if(begin(players), end(players),
[id] (Player* player) {
return player->getId() == id;
});
return found != end(players);
}
bool isPlayerIn(map<int, Player*> players, int id) {
map<int, Player*>::iterator found = find_if(begin(players), end(players),
[id] (pair<int, Player*> found) {
return found.second->getId() == id;
});
return found != end(players);
}