mercredi 11 décembre 2019

For-loop or std::any_of, which one should I use? [closed]

I can't decide between a for-loop and std::any_of, e.g:

QString fileName = "Whatever";  // might contain a key-string which is part of sMyStringlist()
auto anyTypeContains = [=](QString categoryStr)
{
    for(auto const &keyStr : sMyStringlist()[categoryStr])
        if(fileName.contains(keyStr, Qt::CaseInsensitive))
            return true;
    return false;
};
if(anyTypeContains("myCategory"))
...

or

QString fileName = "Whatever";  // might contain a key-string which is part of sMyStringlist()
auto anyTypeContains = [=](QString categoryStr)
{
    return std::any_of(
                sMyStringlist()[categoryStr].begin(),
                sMyStringlist()[categoryStr].end(),
                [=](QString keyStr ){
        return fileName.contains(keyStr, Qt::CaseInsensitive);
    });
};
if(anyTypeContains("myCategory"))
...

I think the for-loop might be better since everyone should be familiar with it. Is there any reason for using any_of or is it just a matter of taste? Are there other (better) alternatives? Thanks in advance.

Aucun commentaire:

Enregistrer un commentaire