lzth.net
当前位置:首页 >> C++中将结构体作为mAp的vAluE值时,我打印vAluE时... >>

C++中将结构体作为mAp的vAluE值时,我打印vAluE时...

那就在插入数据的地方设断点,然后单步调试就可以看到到底有没有成功插入了.

return a.data 评论0 0 0

你应该去买《c++标准函数库》这本书,看看就清楚了. 这两东西就是用来比较两个值是否相等的函数或者仿函数,用在带排序功能的容器里,比如map和set. 比如set<xxx>,如果类型xxx支持operator <,那么默认会用<号作为比较的依据.如

这里首先给出容器map的原型:12345678 template < class Key, class T, class Compare = less<Key>, class Alloc = alloc> class map{ } 可以看到模板参数一共有四个,第一个就是Key,即键;第二个就是值;第四个就是空间配置器,默认使用

首先, MAP是红黑树, 按照key的less运算符或者小于符号排序, 因此Map已经是有序的容器. 如果按照value排序的话, 一个容器肯定是不够的, 我有个建议, 你将value的指针全部提取到一个vector里, 对指针排序后(按你的指定排序索引)使用, 实际上间接的实现了对value的排序

return a.data &lt;= data ; 实际是比较两个地址,而这个应该仅跟你变量定义顺序有关.跟内容无关改成如下即可:return !strcmp(a.data, data);

你可以将map里的键值对作为vector的一个元素然后根据这个排序,自然key就好了啊

试一下#include #include #include using namespace std;int main() { string name; double value; map > m; while (cin >> name >> value) { if (m.find(name) == m.end()) { m[name] = make_pair(1, value); } else { m[name].first++; m[name].second +=

在c++中,结构体就是一种特殊的类,你完全可以把它当作一个类来使用,如果你要改成类的话,我建议你把结构体的声明struct换成class吧.你还需要在你的strudent类中添加一个无参数的构造函数:class student{ public: int id; float gpa;student() {} //添加这个. student(int m=0,float n=0):id(m),gpa(n){}};

请先说清楚这两个结构体的关系,是包含吗?如果是的话,直接访问就可以啊,无论是通过“.”运算符还是通过“->”运算符.例如:struct a{ int aa; struct b{ int bb} b;}a, *sa;a.b.bb=10;sa=&a;sa->b.bb=20;

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com