Removing things that occur once only from an array
I wonder if there is a better way…
#include <iostream> #include <string> #include <vector> #include <map> using namespace std; void remonce(vector<int> &array) { map<int,int> counts; for(size_t n=0;n<array.size();n++) { counts[array[n]]++; } vector<int> newarray; for(size_t n=0;n<array.size();n++) { if(counts[array[n]] != 1) { newarray.push_back(array[n]); } } array = newarray; } int main() { vector<int> array; array.push_back(4); array.push_back(4); array.push_back(3); array.push_back(3); array.push_back(8); array.push_back(16); array.push_back(8); remonce(array); for(size_t n=0;n<array.size();n++) { cout << array[n] << endl; } }