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

溫馨提示×

溫馨提示×

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

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

C++怎么將有意義的操作封裝為精心命名的函數

發布時間:2021-11-26 15:30:27 來源:億速云 閱讀:138 作者:iii 欄目:大數據

這篇文章主要講解了“C++怎么將有意義的操作封裝為精心命名的函數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++怎么將有意義的操作封裝為精心命名的函數”吧!

將有意義的操作封裝為精心命名的函數

Reason(原因)

從復雜代碼分離出可以讓代碼更可讀,更有可能被復用,而且更少錯誤的通用代碼。如果存在被良好定義的動作,那就從其他代碼中將它們分離出來并且為之命名。

Example, don't(示例,不要這樣做)

void read_and_print(istream& is)    // read and print an int{    int x;    if (is >> x)        cout << "the int is " << x << '\n';    else        cerr << "no int on input\n";}

read_and_print函數的差不多每一行都錯了。它讀入信息,向一個固定ostream輸出,向固定ostream輸出,只處理整數。沒有任何代碼可以復用,邏輯上獨立的操作容易混淆而且局部變量的作用域還超過了使用它們的邏輯。這樣一個小例子看起來還行,但是如果輸入操作,輸出操作和錯誤處理更加復雜的話,這種混亂的代碼會變得更加難于理解。Note(注意)

如果你編寫了一個有可能被重復使用的不平凡的lambda表達式,通過將它賦給一個變量(通常非局部)的方式給它一個名字。Example(示例)

sort(a, b, [](T x, T y) { return x.rank() < y.rank() && x.value() < y.value(); });

為拆分表達式的lambda表達式命名并提供一個關于它含義的強提示。

auto lessT = [](T x, T y) { return x.rank() < y.rank() && x.value() < y.value(); };
sort(a, b, lessT);find_if(a, b, lessT);

最短的代碼并不一定意味著最好的性能和維護性。

Exception(例外)

循環體,包含lambda形式的循環體,很少需要命名。然而大規模的循環體(例如幾十行或幾十頁)會成為問題。保持函數體簡短的規則也包含“保持循環體短小”的意思。類似地,作為回調參數使用的lambda表達式有些時候也會不平凡,但是不大可能被復用。Enforcement(實施建議)

  • See Keep functions short and simple

    參考保持函數簡短的規則。

  • Flag identical and very similar lambdas used in different places.

    如果完全相同或非常相似的lambda表達式在不同的地方被使用,標記它們。

感謝各位的閱讀,以上就是“C++怎么將有意義的操作封裝為精心命名的函數”的內容了,經過本文的學習后,相信大家對C++怎么將有意義的操作封裝為精心命名的函數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

c++
AI

东辽县| 建宁县| 太和县| 通城县| 监利县| 广灵县| 鲜城| 日土县| 丹阳市| 正宁县| 阜阳市| 施秉县| 娱乐| 闻喜县| 德清县| 罗江县| 迁西县| 阿鲁科尔沁旗| 泸定县| 白水县| 玛多县| 阿合奇县| 庆安县| 开原市| 哈巴河县| 汽车| 泸水县| 茂名市| 诏安县| 阜平县| 武清区| 丰都县| 东平县| 新绛县| 通江县| 集贤县| 克拉玛依市| 垦利县| 喀什市| 东辽县| 武定县|