为什么泛型算法中的unique用在list上性能会降低

tidus877 2010-06-24 05:46:19
问题,如题,经常能听到这句话,但是不知道具体是为什么?谢谢。。。
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2010-06-26
  • 打赏
  • 举报
回复
泛型算法要拷贝对象,所以性能会低。用list自己实现的算法。
ForestDB 2010-06-26
  • 打赏
  • 举报
回复
建议LZ看看基本的数据结构。
线性表有两种常见的存储方式,一种就是类似array的,一种就是(linked)list的,
这两种存储方式,决定了算法上的差异,
比如array就可以随机访问,但是做插入效率就不好,
又如list插入效率好,但是就是不能随机访问了,
如果对这些基本的知识有些理解了,就很好理解list会有自己的sort和unique。
wyz007134 2010-06-25
  • 打赏
  • 举报
回复
list中的数据是通过指针联系的,所以在去掉重复元素的时候,只需要改变指向它的指针指向就可以了。
但是其余的容器类型的去掉元素就需要从下一个元素开始依次向前覆盖,多次移动数据,效率低下。
delphiwcdj 2010-06-24
  • 打赏
  • 举报
回复
用list特定的算法
chenyu2202863 2010-06-24
  • 打赏
  • 举报
回复
list::unique只是指针的移动,而算法unique是为了满足全部数据结构,进行的值拷贝
  • 打赏
  • 举报
回复
跟 list::unique 比

多做了N次的拷贝操作。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧