いずれか一つにあてはまるかどうか判定する

anyof.png

よくtopcoderの問題であるのが、母音かどうか判定するというものです。
こういう手もありますが、

int isVowel(char c){
    if(c=='a' || c=='e' || c=='i' || c=='o' ||c=='u'){ return true;}
     else{return false;}

書くのが面倒くさいですね。
#include <algorithm>のany_ofという関数を利用してもっと楽に書けます
#include <algorithm>
int isVowel(char c){
    vector<char> vowels = {'a', 'e', 'i', 'o', 'u', 'y'};
    bool find = any_of(vowels.begin(),vowels.end(),[&c](char vowel){return vowel == c;});
    return find;
}

サポートサイト Wikidot.com