これらは、コンテナーstd::map
用std::vector
と Lambda 式を使用したコンテナー用の 2 つのオーバーロードされた関数です。
pair
Lambda 式の型 (私の場合はペアの 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);
}