【发布时间】:2015-05-16 22:52:06
【问题描述】:
我正在使用 SDL 2 制作游戏。该游戏将具有可自定义的控件。但是,如果一个键绑定到多个功能/任务,则应在所有情况下突出显示该键,以通知用户该键已重复。我正在寻找最简单的方法来找到重复的键。
我的想法是将向量转换为集合并返回,使其唯一,然后从原始向量中删除所有唯一值。然后我的问题就变成了,有没有比单独删除每个对象更简单的方法来从与另一个向量共有的向量中删除?就像(a 和 b 是向量)a.remove(b.begin(), b.end())?
OR,有没有更简单的方法来获取向量中重复的对象?
澄清一下,我想从[d, e, a, a, g, f, c, f, f] 得到[a, f]。我不想要唯一对象的向量[a, c, d, e, f, g]。我也知道我可以通过多次遍历向量来做到这一点,我只想要更简单的方法,如果有的话。
如果您需要任何代码(没有太多可提供的),请告诉我,提前致谢!
【问题讨论】:
-
您总是可以通过使用 两个 容器来解决这个问题,一个用于实际映射,另一个用于跟踪键绑定计数。
标签: c++ vector duplicates