靚麗時尚館

位置:首頁 > 健康生活 > 心理

C++STL包含哪些標頭檔案

心理1.12W
C++STL包含哪些標頭檔案

1、 標頭檔案中類宣告包含std::atomic的成員變數,那麼拷貝構造和拷貝賦值必須為delete,通常順帶移動構造和移動賦值為default。以上都不是重點,重點是上述函式只能標頭檔案宣告並定義,而不能在cpp中定義。

2、 unique_ptr在std::move的情況下並不轉移deleter,必須{ase(), _deleter()}顯式右值轉移

3、 大部分場合用unique ptr,而不是shared ptr

4、 如果必須自己實現引用計數,記得計數器宣告為std::atomic的,否則多執行緒bug四處開花。

5、 在效能敏感的場景中,實現一個模板引數指定長度的String類要比std::string好,關鍵是要支援string_view,多數情況下,string_view可以直接從緩衝區強轉構造出來,配合remove_prefix和std::regex,用時一時爽,一直用一直爽。

6 . string_view不管目標的生命週期,不相容c風格結尾,所以千萬要注意目標生命週期,也不要對string_view用c函式。對了,凡是出現std::string_view& 寫法的,估計還沒習慣這玩意。

7、 關於move,在STL容器中,基本就是swap,但用了move最好不要再用std::swap,除了程式碼難讀之外,你還要自己把握swap是否足夠強壯而不出錯。

8、 慎用boost侵入式容器,即使其擁有O(1)的查詢優勢,link mode和侵入式指標也會讓你口吐白沫。不過這裡也推薦給有極致效能要求和自虐傾向的童鞋。

暫時這麼多吧。。。

標籤:CSTL 標頭檔案