У меня есть две строки, то есть: APPLE
и APPLEA
. Я хочу перебрать APPLE
и проверить, принадлежат ли его символы APPLEA
. Я сделал это:
int counter=0;
for (j=0;j<dictionary[i].size();j++)
{
if (word_to_match.find(dictionary[i][j]) != std::string::npos)
{
counter++;
}
}
Где словарь это просто std :: vector, который имеет APPLE
и другие слова. Можно ли избежать for l oop с помощью std :: transform или другого инструмента?
----------------------- ----------- EDIT ------------------------------------
У меня есть это, я не знаю, могло ли это быть даже чище
std::for_each(dictionary[i].begin(),dictionary[i].end(),[&word_to_match,&counter](char const &c){
if (word_to_match.find(c) != std::string::npos)
{
counter++;
}
});