两个list如何取出相同部分

donkey301 2009-11-30 10:20:47
两个list,譬如
list<int> A, B
请问list有函数可以直接取出它们的相同部分放到另一个list中吗?还是要自己编?
p.s., 事实上我需要四个list取出相同部分,如果能解决四个list的问题就更好了
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cattycat 2009-11-30
  • 打赏
  • 举报
回复
如果你的list里每个元素都是不重复的,那么用5楼的map,对每个mp[value]++;最后遍历map,返回第二个值等于4的。这个只需要把每个list遍历一遍,复杂度相对还是比较好的。
太乙 2009-11-30
  • 打赏
  • 举报
回复
遍历一下即可:

使用一个map<value,int> mp
遍历四个list,对每个进行 mp[value]++;
最后再遍历一遍map,将map里的int为4的值放入你的结果list!
sduxiaoxiang 2009-11-30
  • 打赏
  • 举报
回复
hash表也不错啊。。。统计次数>1的就是公共部分
4个list相同部分次数大于3
  • 打赏
  • 举报
回复
还不如用map存了呢。
starwalker 2009-11-30
  • 打赏
  • 举报
回复
先将list排序
然后就好办了
hai040 2009-11-30
  • 打赏
  • 举报
回复
先sort,再set_intersection

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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