Generalnie jak na kogoś kto jest totalnie początkujący to kod bardzo dobry, żadnych typowych błędów.
Mój pomysł:
Przetrzymywanie danych w std::set, czyli zbiorze. Ma on jedną przydatną właściwość - nie przechowuje duplikatów. Więc możesz swobodnie dodawać elementy w pętli, dopóki zbiór nie będzie mieć rozmiaru 5. Wstawianie do zbioru za pomocą metody insert ma złożoność logn, więc cały algorytm z O(n*n) awansuje na O(nlogn) 
Twoja pętla(i jej okolice) by wyglądała tak:
//to na samej górze ;d
#include <set>
// ...
int cyfra;
set<int> zbior;
while(zbior.size() < 5)
{
cyfra = (rand()%n)+1;
zbior.insert(cyfra);
}
//tzw petla for each, aby wypisac wylosowane liczby, nie przejmuj sie nia zbytnio :P
for(int var : zbior){
cout<<var<<' ';
}
Och, zapomniałem, standardowo, tu masz dokumentację :P
http://www.cplusplus.com/reference/set/set/