Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,880 questions

51,806 answers

573 users

How to extract the first N integers from a vector to form a unique vector in C++

1 Answer

0 votes
#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 
  
*/

 



answered Mar 28, 2025 by avibootz
edited Mar 28, 2025 by avibootz
...