如何解决自定义键值的map数据被覆盖

时间:2024-10-20 04:05:29

1、首先自定义JKeyPair对象作为map容器的键值,需要重载operator<运算符

如何解决自定义键值的map数据被覆盖

2、完成JKeyPair的定义后,接着实现JKeyPair对象的具体内容

如何解决自定义键值的map数据被覆盖

3、然后验证效果,先定义std::map容器,键值为自定义对象JKeyPair, 撕良滤儆值为std::string字符串,然后往map容器存放数据

如何解决自定义键值的map数据被覆盖

4、最后运行输出的map容器的信息如下所示,所有的内容都正常打印出来

如何解决自定义键值的map数据被覆盖

5、这时候,我们把map容器中第三个成员中的键值的index修改成与第二个成员中的键值的index一样,即从3修改成2

如何解决自定义键值的map数据被覆盖

6、从输出的结果看,map容器只输出两个成员,并且第二个成员中的值被覆盖

如何解决自定义键值的map数据被覆盖

7、解决map中数据被覆盖,那么需要修改自定义对象JKeyPair中的函数operator<,添加如下红色方框标示的内容

如何解决自定义键值的map数据被覆盖

8、完成修改之后,再次运行程序,从输出的信息看,容器map的所有信息都正确输出

如何解决自定义键值的map数据被覆盖
© 手抄报圈