【问题标题】:how to print a Map Object?如何打印地图对象?
【发布时间】:2013-10-15 19:45:49
【问题描述】:

对不起,如果我的问题是新手,但我找不到解决方案。

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

};

【问题讨论】:

    标签: c++ object printing map


    【解决方案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();
    

    【讨论】:

    • 你说得对,我不知道我今天发生了什么,那里不需要过渡,谢谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多