91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么為所有可能重用的操作命名

發布時間:2021-11-24 10:47:38 來源:億速云 閱讀:94 作者:iii 欄目:大數據

本篇內容介紹了“C++怎么為所有可能重用的操作命名”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

T.140:為所有可能重用的操作命名

Reason(原因)

Documentation, readability, opportunity for reuse.

文檔化,可讀性,重用的機會。

Example(示例)

struct Rec {
   string name;
   string addr;
   int id;         // unique identifier
};

bool same(const Rec& a, const Rec& b)
{
   return a.id == b.id;
}

vector<Rec*> find_id(const string& name);    // find all records for "name"

auto x = find_if(vr.begin(), vr.end(),
   [&](Rec& r) {
       if (r.name.size() != n.size()) return false; // name to compare to is in n
       for (int i = 0; i < r.name.size(); ++i)
           if (tolower(r.name[i]) != tolower(n[i])) return false;
       return true;
   }
);

There is a useful function lurking here (case insensitive string comparison), as there often is when lambda arguments get large.

代碼中隱藏著一個有用(在不需要區分大小寫時)的函數,當lambda表達式變大時通常會這樣。

bool compare_insensitive(const string& a, const string& b)
{
   if (a.size() != b.size()) return false;
   for (int i = 0; i < a.size(); ++i) if (tolower(a[i]) != tolower(b[i])) return false;
   return true;
}

auto x = find_if(vr.begin(), vr.end(),
   [&](Rec& r) { compare_insensitive(r.name, n); }
);

Or maybe (if you prefer to avoid the implicit name binding to n):

或者可以這樣(如果你更希望避免n上的隱式名稱綁定):

auto cmp_to_n = [&n](const string& a) { return compare_insensitive(a, n); };

auto x = find_if(vr.begin(), vr.end(),
   [](const Rec& r) { return cmp_to_n(r.name); }
);
Note(注意)

whether functions, lambdas, or operators.

函數,lambda表達式,運算符都適用。

Exception(例外)

  • Lambdas logically used only locally, such as an argument to for_each and similar control flow algorithms.

    Lambda表達式邏輯上是本地使用的,例如作為一個for_each或類似的控制流算法的參數。

  • Lambdas as initializers

    Lambda表達式作為初始化器使用時。

Enforcement(實施建議)
  • (hard) flag similar lambdas

  • (困難)標記類似的lambda表達式。

“C++怎么為所有可能重用的操作命名”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

淮滨县| 化德县| 枣阳市| 郴州市| 玉田县| 铜陵市| 安溪县| 德安县| 霍州市| 灵台县| 九江市| 三明市| 唐山市| 衡山县| 稷山县| 阳山县| 交口县| 阳西县| 张家川| 个旧市| 大连市| 自贡市| 昌宁县| 娄烦县| 安徽省| 无锡市| 鄂托克前旗| 霍邱县| 桦南县| 永济市| 承德市| 迁安市| 宁蒗| 攀枝花市| 普安县| 改则县| 邵阳县| 灌云县| 独山县| 安达市| 苍溪县|