Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我注意到当我拥有一个大小约为2000的向量时,std :: unique并没有发挥应有的作用。我尝试使用较小的向量进行了惟一的处理,并按预期执行。我通过在两个向量的中间添加约30个重复条目来测试此情况。在较小的向量中,唯一的是,如预期的那样,将这些额外的29个条目放在向量的末尾。但是,在较大的向量中,仅存在重复条目中的一个条目。我可能有一些限制吗?大小矢量使用相同的代码。
举个简单的例子
小向量:19AB 175D 12AC 19F7 19F7 19F7 19F7 209C 20AF
结果:12AC 175D 19AB 19F7 209C 20AF 19F7 19F7 19F7
如果我使用更大的向量运行相同的代码,则19F7只会存在一次。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我注意到当我拥有一个大小约为2000的向量时,std :: unique并没有发挥应有的作用。我尝试使用较小的向量进行了惟一的处理,并按预期执行。我通过在两个向量的中间添加约30个重复条目来测试此情况。在较小的向量中,唯一的是,如预期的那样,将这些额外的29个条目放在向量的末尾。但是,在较大的向量中,仅存在重复条目中的一个条目。我可能有一些限制吗?大小矢量使用相同的代码。
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只会存在一次。
最佳答案
std::unique()
唯一要做的就是返回一个范围,在该范围内重复项已被删除。函数运行后,返回的新的结束迭代器之外的项目不需要是任何东西,因此可以是任何东西。
关于c++ - std::unique是否有大小限制? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19570915/
10-10 22:16