我必须创建一个程序,要求用户输入10到100之间的20个数字,这些数字将存储在一个向量中,但只会存储唯一的值。我创建了一个程序来存储范围内的值,但我不知道如何只存储唯一值。这里是我有:C++矢量中的唯一值?
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int>v);
int main()
{
vector<int>v;
int x;
for (int num = 0; num < 20; num++)
{
cout << "Enter number " << (num + 1) << ":";
cin >> x;
if (10 < x)
{
if (x < 100)
v.push_back(x);
}
}
print(v);
}
void print(vector<int>v2)
{
for (int count = 0; count < v2.size(); count++)
cout << v2[count] << " ";
}
我想感谢大家的帮助。
为什么你的印刷版复制整个向量?这是不必要的。改为传递const引用。 – 2014-11-09 02:58:33
如果必须使用向量,那么在插入之前使用'std :: find'函数检查值是否已经存在。 – 2014-11-09 02:59:05
为什么你不使用std :: set? – paulm 2014-11-09 18:10:09