如何打印地图对象?

时间:2013-10-15 19:45:50

标签: c++ object printing map

抱歉,如果我的问题是新手,但我无法找到解决方案。

我有一个名为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;

};

2 个答案:

答案 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)

beginendstd::map的成员而非您班级的成员。您需要致电a.inNext.begin()a.inNext.end()