std :: unique是否有大小限制?

0 c++ vector

我注意到当我有一个大小约为2000的向量时,std :: unique没有按照应有的方式运行.我尝试使用较小的向量进行唯一操作,并按预期执行.我通过在两个向量的中间添加大约30个重复条目来测试它.在较小的向量中,unique将那些额外的29个条目放在向量的末尾,如预期的那样.但是,在较大的向量中,只有一个重复条目的条目存在.是否有可能超出我的限制?大小矢量使用相同的代码.

sort(dbaselista.begin(),dbaselista.end());
vector<string>::iterator lasta = unique(dbaselista.begin(),dbaselista.end());
//dbaselista.erase(lasta, dbaselista.end());
Run Code Online (Sandbox Code Playgroud)

作为一个简单的例子,

小矢量:19AB 175D 12AC 19F7 19F7 19F7 19F7 209C 20AF

结果:12AC 175D 19AB 19F7 209C 20AF 19F7 19F7 19F7

如果我用更大的向量运行相同的代码,19F7只会存在一次.

j_r*_*ker 6

std::unique()承诺要做的唯一事情是返回一个已删除重复项的范围.函数运行后,它返回的新结束迭代器之外的项不需要是任何东西,因此它们可以是任何东西.