1

これらは、コンテナーstd::mapstd::vectorと Lambda 式を使用したコンテナー用の 2 つのオーバーロードされた関数です。

pairLambda 式の型 (私の場合はペアの 2 番目) と通常の範囲型 ( vectordequeなど)をチェックできるテンプレート関数にする方法はありますか?

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);
}
4

1 に答える 1