抱歉,如果我的问题是新手,但我无法找到解决方案。
我有一个名为Transition的类,它有一个名为inNext的地图,我想打印这个Transition对象,但是我得到一个关于“无法找到开始或结束成员”的错误(来自地图类)
class Transition{
public:
Transition():inNext(){};
~Transition(){};
map<string, string>& getTransition(){
return inNext;
}
void setTransition(string a, string b){
inNext.insert(pair<string,string>(a,b));
}
void printTransition(Transition a){
map <string, string>::iterator it;
for(it = a.begin(); it != a.end(); it++){
cout << (*it).first << ","<<(*it).second << endl;
}
}
private:
map<string, string> inNext;
};
答案 0 :(得分:1)
你的方法很奇怪:它是一个成员函数和它需要Transition
的另一个实例(甚至拷贝它无缘无故)作为参数。你可能想要
void print() {
// you want to print the content of the map inNext:
for(map <string, string>::iterator it = inNext.begin(); it != inNext.end(); it++) {
cout << it->first << "," << it->second << endl;
}
}
这样称呼:
Transition myTransition = ...;
myTransition.print();
答案 1 :(得分:0)
begin
和end
是std::map
的成员而非您班级的成员。您需要致电a.inNext.begin()
和a.inNext.end()
。