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,966 questions

51,908 answers

573 users

How to filter a vector in-place with C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <algorithm> // for std::remove_if

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

    // Define the condition
    // isEven: The name you're giving to the lambda, so you can call it later like a regular function
    /// [](int num) { ... }: The lambda function.
    auto isEven = [](int num) { return num % 2 == 0; };

    // Use std::remove_if to filter in-place
    auto newEnd = std::remove_if(numbers.begin(), numbers.end(), isEven);

    // Resize the vector to remove the "removed" elements
    numbers.erase(newEnd, numbers.end());

    // Print the filtered vector
    std::cout << "Filtered numbers: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
}



/*
run:

Filtered numbers: 1 3 5 7 9 11 

*/


 



answered Jul 13, 2025 by avibootz
...