我注意到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