#include <iostream>
#include <vector>
#include <unordered_set>
std::vector<int> extractFirstNUnique(const std::vector<int>& vec, int n) {
std::vector<int> result;
std::unordered_set<int> seen;
for (int num : vec) {
if (seen.find(num) == seen.end()) { // If number is not seen
seen.insert(num);
result.push_back(num);
if (result.size() == n) {
break; // Stop when we have N unique numbers
}
}
}
return result;
}
int main() {
std::vector<int> vec = {1, 2, 2, 1, 5, 8, 3, 1, 2, 6, 5, 7, 3, 2, 1, 4, 9};
int n = 5;
std::vector<int> uniqueNumbers = extractFirstNUnique(vec, n);
std::cout << "First " << n << " unique integers: ";
for (int num : uniqueNumbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
/*
run:
First 5 unique integers: 1 2 5 8 3
*/