#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include<cstring>
bool is_vowel( char ch) { return std:: strchr ( "aeiouAEIOU" , ch) ! = NULL ; }
int main( )
{
std:: string s( "A quick brown Fox jumps over a Lazy DOG." ) ;
std:: cout << "Original vector:\n " ;
std:: copy ( s.begin ( ) , s.end ( ) ,
std:: ostream_iterator < char > ( std:: cout , " " ) ) ;
// Partition the vector
std:: string :: const_iterator p =
std:: partition ( s.begin ( ) , s.end ( ) ,
std:: ptr_fun ( is_vowel) ) ;
std:: cout << "\n Partitioned vector:\n " ;
std:: copy ( s.begin ( ) , s.end ( ) ,
std:: ostream_iterator < char > ( std:: cout , " " ) ) ;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZTxjc3RyaW5nPgoKYm9vbCBpc192b3dlbChjaGFyIGNoKSB7IHJldHVybiBzdGQ6OnN0cmNocigiYWVpb3VBRUlPVSIsIGNoKSAhPSBOVUxMIDsgfQogCmludCBtYWluKCkKewogICAgc3RkOjpzdHJpbmcgcygiQSBxdWljayBicm93biBGb3gganVtcHMgb3ZlciBhIExhenkgRE9HLiIpOwogCiAgICBzdGQ6OmNvdXQgPDwgIk9yaWdpbmFsIHZlY3RvcjpcbiAgICAiOwogICAgc3RkOjpjb3B5KHMuYmVnaW4oKSwgcy5lbmQoKSwgCiAgICAgICAgICAgICAgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGNoYXI+KHN0ZDo6Y291dCwgIiAiKSk7CiAKICAgIC8vIFBhcnRpdGlvbiB0aGUgdmVjdG9yCiAgICBzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3IgcCA9CiAgICAgICAgc3RkOjpwYXJ0aXRpb24ocy5iZWdpbigpLCBzLmVuZCgpLCAKICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnB0cl9mdW4oaXNfdm93ZWwpKTsKIAogICAgc3RkOjpjb3V0IDw8ICJcblBhcnRpdGlvbmVkIHZlY3RvcjpcbiAgICAiOwogICAgc3RkOjpjb3B5KHMuYmVnaW4oKSwgcy5lbmQoKSwgCiAgICAgICAgICAgICAgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGNoYXI+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICAKfQ==