我正在创建一个将素数放入向量的程序。我将举一个例子来更好地演示该程序应该如何工作:
用户:3
输出3
用户:13
输出:3 5 7 11 13
用文字表示,该程序将小数或小于用户输入的素数相加。如果用户的实际输入是素数,那么最后给出一个真或假的bool。
if (found)
{
vector_output.push_back(j);
}
if (number == j)
{
if (found ==false)
return false;
else
void checkprime::vector_finder()
{
for (int k=0; k < vector_output.size(); k ++)
{
cout << vector_output[k];
}
}
不幸的是,我的输出是:
用户3
输出3
用户13
输出:3 5 5 5 7 7 7 7 7 9 11 13
如何将它传到矢量不重复数字的位置?
我在vector_output.pushback(j)之前想到了类似if语句的内容,例如
if (vector_output.size() != 0 && vector.output.back() != j)
vector_output.push_back(j);
会起作用,但它不会输出任何东西。
答案 0 :(得分:1)
您可以使用std::unique
删除重复项。例如:
std::vector<int> v{1, 2, 2, 3, 5, 9, 1};
std::sort(v.begin(), v.end());
v.erase(std::unique(v.begin(), v.end()), v.end());