删除对象列表中的类似项目

时间:2016-05-29 07:19:01

标签: c++

我正在从文本文件中填充Set Normal DIfficulty|Sets your save game to normal difficulty|/JKSV/Saves/Fire_Emblem__Awakening/hack/Chapter0|0x0D|0x00 Set Normal DIfficulty|Sets your save game to normal difficulty|/JKSV/Saves/Fire_Emblem__Awakening/hack/Chapter0|0x0F|0x0A Set Hard DIfficulty|Sets your save game to hard difficulty|/JKSV/Saves/Fire_Emblem__Awakening/hack/Chapter0|0x0D|0x01 Set Lunatic DIfficulty|Sets your save game to lunatic difficulty|/JKSV/Saves/Fire_Emblem__Awakening/hack/Chapter0|0x0D|0x02 Set Lunatic+ DIfficulty|Sets your save game to lunatic+ difficulty|/JKSV/Saves/Fire_Emblem__Awakening/hack/Chapter0|0x0D|0x03 列表,但是有些实例中name变量是相同的,在那些实例中我想删除重复的项目(具有相同名称的项目,其他信息)该项目是无关紧要的)但从该对象获取数据以添加到原始' (项目的第一个实例)

因为我希望能够加载多个信息,也就是将一系列信息加载到' items'这就是我到目前为止所提出的

我尝试循环遍历项目,然后再次循环并检查第二个循环的第一个循环,复制信息并添加到第一个循环项的数组但它只是中断。

建议?

与此类似:article 除非我想使用任何重复中的信息并将其添加到项目对象所包含的Set Normal Difficulty

所以,如果我加载它:

0x0F|0x0A

它只有1个bool[4][2]项,但该项目将包含重复的最后2条信息(又名sizeof(what_am_i)/sizeof(*what_am_i) == 4

1 个答案:

答案 0 :(得分:0)

如果您希望DList删除重复值,则必须调用std::list<T>成员函数。它有两个重载。首先取0个参数并使用unique比较值。这不是你的情况,因为你的列表包含指针,你不需要比较operator==成员的地址。所以试试第二个。它需要一个二元谓词,您可以在其中比较成员

name

更多信息here