list iterator als Funktionsparameter?



  • Hallo miteinander,

    ich habe mir eine Klasse "Rules" geschrieben, in der eine Methode wie folgt deklariert ist:

    void calculateNextPossibleMove(Player p);
    

    Nun will ich allerdings einen Iterator über eine Liste übergeben.

    for (int i=0; i<numberOfPlayers; i++){
        Player p = Player(i);
        m_players.push_back(p);
    }
    
    list<Player>::iterator playersIterator = m_players.begin();
    m_rules->calculateNextPossibleMove(playersIterator);
    

    Als Fehlermeldung bekomme ich

    error: no matching function for call to 'Rules::calculateNextPossibleMove(std::_List_iterator<Player>&)'
    note: candidates are: void Rules::calculateNextPossibleMove(Player)

    Kann mir jemand sagen, warum das nicht geht, und wie ich den Fehler beseitigen kann? Vielen Dank für jede Hilfe.



  • m_rules->calculateNextPossibleMove(*playersIterator);
    

    playersIterator ist der Iterator und *playersIterator der Wert dahinter.



  • Ah, tausend Dank. Hätt ich auch selbst drauf kommen können. Dachte ich hätte es schon probiert, aber es funktioniert jetzt.


Anmelden zum Antworten