我注意到std :: unique的行为并不像它应该的样子,当我有一个大小约为2000的向量时。我尝试使用一个更小的向量来实现唯一性,并且按照预期执行。我通过在两个向量中添加大约30个重复条目来测试这一点。如预期的那样,在较小的向量中,独特地将这些额外的29个条目放在向量的末尾。但是,在较大的向量中,重复条目中只有一个条目存在。我有可能超出限制吗?大小矢量都使用相同的代码。std :: unique是否有大小限制?
sort(dbaselista.begin(),dbaselista.end());
vector<string>::iterator lasta = unique(dbaselista.begin(),dbaselista.end());
//dbaselista.erase(lasta, dbaselista.end());
作为一个简单的例子,
小载体:19AB 175D 12AC 19F7 19F7 19F7 19F7 209C 20AF
结果:12AC 175D 19AB 19F7 209C 20AF 19F7 19F7 19F7
如果我跑具有更大矢量的相同代码19F7将只存在一次。
发布您的代码,杜拜。 – catscradle
最好用实际的代码来演示问题。 – BartoszKP