@daniyo → En general, así no se usan los vectores en C++, eso luce mucho a simple código C ...  si bien es legal, en general se usa la librería estándar de C++
Tenes varias formas de hacerlo, las que me llegan a la cabeza: 
* Usando los operadores size,at (o el operador [] que esta sobrecargado)  de std::vector 
* Recorrer el vector como un container usando iteradores (begin y end) con fors anidados
* Usando std::sort y std::adjacent_find
* Usando std::count
* std::map ?
Yo voy a poner la tercera (que no es la mas facil, pero tampoco la mas compleja) ... pero te diría que experimentes con las otras 

- #include <iostream> 
- #include <vector> 
- #include <algorithm> 
-   
- using namespace std; // no abusar de esto ! 
-   
- int main(int argc, char** argv) 
- { 
-     //1 2 3 4 5 6 7 8 2 9 
-     vector<int> numVector; 
-         numVector.push_back(1); 
-         numVector.push_back(2); 
-         numVector.push_back(3); 
-         numVector.push_back(4); 
-         numVector.push_back(5); 
-         numVector.push_back(6); 
-         numVector.push_back(7); 
-         numVector.push_back(8); 
-         numVector.push_back(2); 
-         numVector.push_back(9); 
-   
-    sort(numVector.begin(),numVector.end()); // Ordenamos 
-     vector<int>::iterator Iterator = adjacent_find(numVector.begin(),numVector.end(), equal_to<int>());  // Usamos busqueda de adyacente, usando equal_to para comparar 
-   
-   if (*Iterator) cout << "Numero repetido : " << *Iterator << endl; 
-   
-     return 0; 
- } 
-   
-   
En el nuevo estandar C++ aprobado (C++11), esto se puede hacer facilmente con for de rango (cuando veas lo simplificados que estan los fors, no vas a querer ver los viejos fors, nunca, pero nunca mas), for_each (usando lambdas), eeeeeeeeeetc ... la creatividad no tiene limites (y menos con C++11 =D ).
Un ejemplo con un minimo toque de C++11 (solo ranged fors) ... que es bastante ineficiente (se re-recorre asquerosamente el vector de manera innecesaria),  pero sacrificamos esa eficiencia para tener algo mas potable a los ojos:
- #include <iostream> 
- #include <vector> 
- #include <map> 
- #include <algorithm> 
-   
- using namespace std; // no abusar de esto ! 
-   
- int main(int argc, char** argv) 
- { 
-     map<int,int> mapNumbers; 
-     vector<int> vecNumbers; 
-         vecNumbers.push_back(1); 
-         vecNumbers.push_back(2); 
-         vecNumbers.push_back(2); 
-         vecNumbers.push_back(3); 
-         vecNumbers.push_back(4); 
-         vecNumbers.push_back(5); 
-         vecNumbers.push_back(6); 
-         vecNumbers.push_back(7); 
-         vecNumbers.push_back(8); 
-         vecNumbers.push_back(8); 
-         vecNumbers.push_back(2); 
-         vecNumbers.push_back(9); 
-   
-    for(int Number: vecNumbers) 
-    { 
-        int numberCount = count(vecNumbers.begin(),vecNumbers.end(),Number); 
-        if ( numberCount > 1) mapNumbers[Number] = numberCount; 
-    } 
-   
-    for(auto valuePair:mapNumbers) 
-        cout << "The number " << valuePair.first << " repeated " << valuePair.second << " times" << endl;       
-   
-     return 0; 
- } 
-   
-   
Simple, sin lambdas, ni hash, ni nada de esa indole por que son features que queman mucho la legibilidad del codigo para alguien que maneja C++03 y ahi nomas ... si alguien quiere un ejemplo mas eficiente y que toque mas cosas de C++11 para ver como es, pida nomas 

Saludos.