日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

C++ 学习宝藏网站分享

發布時間:2024/1/16 windows 130 coder
生活随笔 收集整理的這篇文章主要介紹了 C++ 学习宝藏网站分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++ 學習寶藏網站分享

1. C++ 在線參考手冊 Cppreference

https://zh.cppreference.com

C++ 開發者必備的在線參考手冊,是我最常訪問的 C++ 網站之一。作為參考手冊,不僅包含了語言本身的詞法、語法特性,還包含了對 C++ 標準庫的介紹:需要 include 哪個頭文件、接口參數/返回值說明、參考實現、示例代碼、各家編譯器的支持情況等。

參考手冊就好像字典,對于大多數的開發人員來說,不需要從頭看到尾。點開幾個鏈接,看看里面有哪些內容,大致留個印象,具體用到了某個部分再來查閱即可。

如果一開始看起來有些吃力,就直接放棄了這個 C++ 寶藏網站,實在是太可惜了。可以先看下《C++ Primer》之類的書籍鞏固下基礎,然后再對照著 cppreference 手冊一起看。

場景 1

現代 C++ 有一種說法:“如果你想提高代碼質量,那就用 C++ 標準庫算法替換所有的循環。換句話說,如果你還在寫 for 循環遍歷,說明你對 STL 的算法知之甚少” 。C++ 標準庫中有上百種算法,很難記住所有的算法及其調用方式。但當你打算寫一個遍歷 for 循環的時候,不妨先去 cppreference 上看一眼,多數情況下你能找到更簡潔清晰、質量更高、速度更快的標準庫算法。

例如,計算一個 vector 內所有數據之和:

// 手寫循環遍歷,不好
auto sz = v.size();
for(size_t i=0; i<sz; ++i)
  sum += v[i];

使用標準庫算法,代碼簡潔,意圖清晰,表達力強:

// 好
auto sum = std::accumulate(std::begin(v), std::end(v), 0.0);

場景 2

不知道如何測量程序的執行時間,但是又不想使用從百度搜出來的,不知道經歷了幾手轉載于 CSDN 上的,編碼風格很爛、漏洞百出,甚至混雜著 C/C++98 的,勉強能跑,亦或不能跑的代碼。想了解最新的現代 C++ 如何使用 chrono 庫來計算程序執行耗時,想知道如何正確使用各種 clocktime_pointduration_cast,比起 CSDN 和百度,我更相信 cppreference。

抄作業,也要抄好學生的作業。

其他場景

如有類似下面的問題,cppreference 都可以快速給出準確、權威的解答。

  • 隱約記得 std::string 支持查找字串的方法,但記不清方法具體的使用參數、返回值,或者干脆不知道是否支持子串查找

  • std::vector 容器的 capacity()reserve() 的作用和用法

  • make_unique()make_shared() 哪一個是 C++11 引入的,哪一個是 C++14 引入的?

  • 項目只支持 C++14,能否使用 std::optional

2. C++ 核心指南(C++ Core Guidelines)

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

C++ Core Guidelines 是由 C++ 之父 Bjarne Stroustrup 和 C++ 標準委員會主席 Hurb Sutter 領導并維護的開源項目,旨在幫助 C++開發者更高效地使用現代 C++。C++核心指南側重于接口、資源管理、內存管理、并發等影響程序架構設計的高級主題,遵循這些規則可以最大程度地保證類型安全,避免資源泄露及常見的錯誤,讓你的代碼更快、更好。

如果在做 Code Review 的時候,直接貼一個上一個 C++ Core Guidelines 的鏈接,會節省很多力氣,也更有說服力。

吳詠煒老師曾說過:“學習 C++,主要就是學習 C++ Core Guidelines 和 C++ 慣用法”。巧了,我的我之前分享的很多篇隨筆也都是圍繞著這兩個話題:

  • C++ 核心指南
  • C++ 慣用法

3. 谷歌 C++編碼規范(Google C++ Style Guide)

https://google.github.io/styleguide/cppguide.html

不同于 C++ Core Guidelines 側重 high-level 的規范,谷歌的這份 C++ Style Guide 包含了很多諸如格式、命名、注釋、類、方法、頭文件等相對 low-level 的詳細編碼規范,涉及開發過程的很多方面。每個條目都有優缺點的分析,以及最終的決定及理由。如果你的項目還沒有一個編碼規范,這是一份很好參考模板。

說句題外話:盡管使用 C++ 異常會帶來很多好處,但 Google C++ 規范中不使用異常,因為 Google 現有的大量代碼對異常的支持并不是很友好,全面轉向異常需要花費大量的時間,且容易出現問題。但是正如規范中提到得那樣,如果一切都是從頭開始,可能會做出相反的決定。

4. Wandbox

https://wandbox.org

界面簡潔的在線編譯器。支持多種語言、多種編譯器、同一編譯器的不同版本,不需要本地搭建環境。

更多時候可能只是遇到拿不準的問題,想寫幾行代碼快速驗證一下,但手邊沒有編譯環境,這時 Wandbox 就可以發揮作用了。

5. Compiler Explorer

https://godbolt.org

正如網站名字那樣,編譯器探索者。可以查看使用不同編譯器、不同版本、不同編譯選項編譯產生的匯編代碼,能夠自動高亮關聯到源碼。然而這只是最基本的功能,更多強大的功能等著你自行探索。此外, Compiler Explorer 還提供豐富的模板,同時支持 vim 以及 VSCode 快捷鍵,也可以作為普通的在線 IDE 使用。

6. C++ Insights

https://cppinsights.io/

Compiler Explorer 的兄弟網站,能夠顯示 C++ 代碼展開之后的樣子。比如可以用它來探究直接初始化和拷貝初始化的區別(沒區別),或者 range-for 是如何實現的:

7. Quick Bench

https://quick-bench.com/

顧名思義,這個網站是用來比較兩個代碼片段性能的。

注意,代碼片段級優化只應該作為最后的優化手段!詳見:性能優化的一般策略及方法 一文


汽車行業 C++ 程序員,持續學習,不定期分享,歡迎關注,共同進步!

  • 微信公眾號:好記性如爛筆頭

  • 博客園:https://www.cnblogs.com/tengzijian

總結

以上是生活随笔為你收集整理的C++ 学习宝藏网站分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。