5月11日学习总结

一、感悟:
这段时间没咋干什么,就是还在写那个手机通讯录,这个东西可让我纠结了今天整整一下午加一晚上。怎么说呢,其实很简单的一个代码,老师说我们自己写的没有灵魂。实际我也感觉这样,写代码的套路僵了。自从上次写出来代码后,以后的代码就是按照以前的写的。就是简单的加了点功能。今天我尝试了好几种用map实现查询的方法。
一、使用map<string,int>
老师建议使用这个进行查找,说实在的好是好,但是有一个很大的缺陷。例如:
设立一个vector向量储存联系人信息,用map将联系人姓名与vector下标联系在一起,通过下标进行查找,可以大大减少时间。但是倘若把vector中间一个联系人信息删除,vector后面的联系人将会往前补充并占据删除的联系人下标位置,一旦vector中元素位置发生改变那么再按照之前map中保存的下标进行查找,就不会是要找的那个联系人信息。所以这个方法只适合查找向量元素不发生改变的情况。
解决方案:
将要删除的联系人信息和最后一个联系人信息交换,就是把最后一个人的信息复制给将要删除的联系人(信息覆盖),然后删除最后那个联系人即可,这样的话不会改变要删除的联系人之后的联系人的下标位置。
二、map<string,string>
这个方法可以实现,就是对联系人进行的增添删改都在map中进行,最后即将map中的信息存入到vector中,然后再保存到文档中。这个代码已经实现,但是我感觉整个程序完全不需要vector,只需要一个map便可实现所有功能,明天将尝试实现这个思想。
三、姓名与指针联系的方式
顾名思义就是把联系人姓名和这个联系人在vector中的地址绑定一起,这样的话,也不会因为vector中的联系人改变而导致通过下标查询不到,但是这个方法我用了一个多小时也没有完成,太繁琐了。
明天继续加油!争取把这些方式都实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值