有一组数组a,比如说1 1 2 3 4 4 5 5,进行循环,数组b是空的
如果过程中a中元素在数组b中没出现过,计数加一,这个元素存入数组b中,就这样循环一下,得出的数组b是1 2 3 4 5,计数为5。就像这个思路用代码呈现出来。
其实如果用vector的话完全不用计数的,毕竟用vector.size()多方便
#include<iostream>
using namespace std;
#include<vector>
int main()
{
int a[] = { 1,1,2,3,4,4,5,5 };
int counter = 0;
int size = sizeof(a) / 4;
vector<int> b;
for (int i = 0; i < size; i++)
{
if (count(b.begin(), b.end(), a[i])==0)
{
b.push_back(a[i]);
counter += 1;
}
}
for (int i = 0; i < b.size(); i++)
{
cout << b[i];
}cout <<endl<< "counter=" << counter;
}
嘿嘿,这样怎么样
template<typename Type>
void func(const std::vector<Type>& a, std::vector<Type>& b)
{
std::unordered_set<Type>s;
for (const Type& value : a)
{
s.insert(value);
}
b.resize(s.size());
std::copy(s.begin(), s.end(), b.begin());
}