Można to łatwo zrobić używając asocjacyjnego kontenera map<> , który znajduje się w STL. Wymagany jest minimum C++11.
#include <iostream>
#include <vector>
#include <map>
using namespace std;
map<int,int> findPairs( const vector<int>& data )
{
map<int,int> result;
for( const auto& element : data )
{
++result[element];
}
return result;
}
int main()
{
vector<int> data {2,6,6,6,4,5,1,1,5,6,1,1,7,8,34,2,7,134,91,6,92,6,88,6,0,6};
for( auto& value : findPairs(data) )
{
cout << " Number " << value.first << " has " << value.second/2 << " pairs." << endl;
}
return 0;
}