【发布时间】:2023-03-22 06:46:01
【问题描述】:
假设我有一个包含以下元素的向量 {1, 1, 2, 3, 3, 4} 我想用 c++ 代码编写一个程序来删除唯一值并只保留重复的一次。所以最终结果会是这样的 {1,3}。
到目前为止,这就是我所做的,但这需要很多时间, 有什么办法可以提高效率,
vector <int> g1 = {1,1,2,3,3,4}
vector <int> g2;
for(int i = 0; i < g1.size(); i++)
{
if(count(g1.begin(), g1.end(), g1[i]) > 1)
g2.push_back(g1[i]);
}
v.erase(std::unique(g2.begin(), g2.end()), g2.end());
for(int i = 0; i < g2.size(); i++)
{
cout << g2[i];
}
【问题讨论】:
-
输入向量会一直排序吗?如果没有,您是否只想检查彼此相邻的重复项,或者向量中的任何位置?
-
@BoBTFish 谢谢你的回复,不会排序,不会重复的不会相邻