空向量<...>没有命名的成员

empty vector<...> has no member named

本文关键字:成员 gt 向量 lt      更新时间:2023-10-16

我正在尝试打印向量的内容并获取以下

错误消息aka class __gnu_cxx::__normal_iterator<const SoccerTeams*, std::vector<SoccerTeams> >}’ has no member named ‘teamName’

这是我的班级

class SoccerTeams {
    string teamName;
 public:
    vector<SoccerTeams> teams;
    void addTeam(string name) {
        SoccerTeams newTeam(name);
        teams.push_back(newTeam);
    };
    void showTeams() {
        cout << "nHere's all the teams!";
        //error here
        for (vector<SoccerTeams>::const_iterator i = teams.begin(); i != teams.end(); ++i) 
            cout << *i.teamName << endl;
    }
    SoccerTeams(string tn){
        teamName = tn;
    };
    ~SoccerTeams(){};
};

我相信错误之所以存在,是因为矢量团队当前是空的,是否有任何方法可以解决此问题?

.运算符的优先级高于Unary *。因此,*i.teamName*(i.teamName),试图在const_iterator中查找成员teamName,而不是SoccerTeams对象*i

您需要(*i).teamName,或等效地,i->teamName