打印出映射键值,其中键是结构变量c ++

时间:2016-06-03 05:30:07

标签: c++ dictionary

struct cno{
    int sub;
};

结构被视为地图中的关键变量。

map<cno,int> s;
struct cno k;

我正在尝试打印这样的键值。

for(map<cno,int>::iterator it = s.begin();it!=s.end();it++){
    cout<<it->first<<endl;
}//Error

我已经超载&lt;运算符来比较键值。

2 个答案:

答案 0 :(得分:1)

您需要做的就是(it->first.sub

for(map<cno,int>::iterator it = s.begin();it!=s.end();it++){
    cout<<it->first.sub<<endl;
}

为什么呢? first的类型为cno,您需要访问所需的元素。

如果您已为此实现了重载运算符<<,请在此处提供代码。

答案 1 :(得分:1)

这就是overload运营商的方式:

ostream& operator<<(ostream& out,cno &c){
    out<<c.sub<<endl;
    return out;
}

您需要重载运算符才能打印,比较或处理用户定义的对象的元素。我们必须重载 ostream object以打印用户定义的对象。