#include <iostream>
#include <vector>
#include <unordered_set>
#include <iterator>
int findSmallestMissingNumber(std::vector<int> const &v) {
std::unordered_set<int> us(v.begin(), v.end());
int index = 1;
while (true) {
if (us.find(index) == us.end()) {
return index;
}
index++;
}
}
int main()
{
std::vector<int> v = { 1, 5, 2, 7, 4, 9, 12 };
std::cout << findSmallestMissingNumber(v);
return 0;
}
/*
run:
3
*/