簡體   English   中英

For 循環或 std::any_of,我應該使用哪一個?

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

我無法在for 循環std::any_of之間做出決定,例如:

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

或者

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

我認為for 循環可能會更好,因為每個人都應該熟悉它。 是否有任何理由使用any_of還是只是品味問題? 還有其他(更好的)替代方案嗎? 提前致謝。

許多 C++ 標准庫函數(通常是<algorithm>那些)可以避免對for或其他循環結構的需要。 std::accumulate是一個早期的例子。

因此更喜歡std::any_of而不是循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM