(C++) StdPartition\_copyExample1
February 24, 2017 · View on GitHub
(C++) StdPartition_copyExample1
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
STL: GNU ISO C++ Library, version
4.9.2
Qt project file: ./CppStdPartition_copyExample1/CppStdPartition_copyExample1.pro
include(../../ConsoleApplication.pri) #Or use the code below # QT += core # QT += gui # CONFIG += console # CONFIG -= app_bundle # TEMPLATE = app # CONFIG(release, debug|release) { # DEFINES += NDEBUG NTRACE_BILDERBIKKEL # } # QMAKE_CXXFLAGS += -std=c++1y -Wall -Wextra -Weffc++ # unix { # QMAKE_CXXFLAGS += -Werror # } SOURCES += main.cpp
./CppStdPartition_copyExample1/main.cpp
#include <algorithm> #include <cassert> #include <cmath> #include <iostream> #include <iterator> #include <vector> //From http://www.richelbilderbeek.nl/CppIsPrime.htm bool IsPrime(const int x) { const int max = static_cast<int>( std::sqrt(static_cast<double>(x)) ) + 1; for (int i=2; i!=max; ++i) { if (x % i == 0) return false; } return true; } int main() { std::vector<int> v; for (int i=1; i!=10; ++i) v.push_back(i); std::vector<int> primes; std::vector<int> non_primes; //Partition the std::vector in primes and non-primes std::partition_copy( v.begin(), v.end(), std::back_inserter(primes), std::back_inserter(non_primes), IsPrime ); std::cout << "Primes: "; std::copy(std::begin(primes),std::end(primes),std::ostream_iterator<int>(std::cout," ")); std::cout << "\nNon-primes: "; std::copy(std::begin(non_primes),std::end(non_primes),std::ostream_iterator<int>(std::cout," ")); std::cout << "\n"; } /* Screen output: Primes: 1 2 3 5 7 Non-primes: 4 6 8 9 Press <RETURN> to close this window... */