类似于寻找数组中元素出现个数
论文问答
1
有一组数组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()); }
发表回复