2013-10-15 25 views
1

对不起,如果我的问题是新手,但我找不到解决方案。如何打印地图对象?

我有一类名为转型是有地图叫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; 

}; 
错误

回答

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(); 
+0

你是对的,我不知道今天发生了什么事,那里没有需要过渡,谢谢。 –

0

beginendstd::map的成员,不属于您的班级。您需要拨打a.inNext.begin()a.inNext.end()

+0

我如何didnt看见!谢谢!!你帮助我很多 –