侯捷C++ STL體系結構與原始碼剖析:關於moveable的說明
vector體積二倍增長,需要挪到另外一個空間進行構造,所以雖然insert進行300萬次,而構造的動作有700多萬次。
list一個蘿蔔一個坑,所以構造的次數和insert一樣。一個一個節點式的容器在時間花費上差不多,只有vector例外。
move的工作和淺拷貝的原理差不多。傳進去的引數是reference_by_reference。copy版本會真的分配,而move版本只是拷貝指標。
測試程式:插入300萬的元素。和測試copy,move copy(淺拷貝),swap。
注意到深拷貝copy時間為3500,而move copy和swap動作的時間幾乎為0。臨時物件就可以用move,淺拷貝的這種,因為可以保證之後不會用到。比如這裡的V1type(buf)就是臨時物件。move之後就不能用原來的東西,因為很危險。
copy深拷貝:
move copy:只是交換三個指標。
關於string:也有move copy。
相關文章
- 【PG體系結構】PG體系結構簡單說明
- STL原始碼剖析——vector容器原始碼
- C++(STL原始碼):37---仿函式(函式物件)原始碼剖析C++原始碼函式物件
- 侯捷C++手把手教學:堆、棧與記憶體管理C++記憶體
- 【STL 原始碼剖析】淺談 STL 迭代器與 traits 程式設計技法原始碼AI程式設計
- 侯捷老師C++學習路線C++
- C++動態記憶體管理與原始碼剖析C++記憶體原始碼
- 剖析虛幻渲染體系-開篇說明
- Oracle體系結構概述與SQL解析剖析OracleSQL
- Faiss原始碼剖析:類結構分析AI原始碼
- 支付寶程式碼示例結構說明
- 侯捷C++物件導向高階開發筆記C++物件筆記
- Flutter原始碼剖析(一):原始碼獲取與構建Flutter原始碼
- 關於STL容器的簡單總結
- 關於 Jupyter 的使用說明
- 前端元件wolfTable中關於表格凍結部分的說明前端元件
- DKhadoop框架結構說明Hadoop框架
- 微機結構說明
- flowable 表結構說明
- 關於DedeCMS版本號的說明
- Linux系統結構說明及用途介紹Linux
- WordPress採集入庫表結構關聯說明
- 1.1. 關於多租戶體系結構
- Spring原始碼閱讀-ApplicationContext體系結構分析Spring原始碼APPContext
- Oracle 官方文件 結構說明Oracle
- 加強堆結構說明
- 關於部落格更新說明
- MySQL:關於ICP特性的說明(未完)MySql
- C++ STL:std::unorderd_map 物理結構詳解C++
- 關於 Go 程式碼結構的思考Go
- 2. STL容器結構與分類
- jQuery原始碼剖析(五) - 事件繫結原理剖析jQuery原始碼事件
- YYModel 原始碼剖析:關注效能原始碼
- C++ STL list連結串列C++
- 關於支援OPenACC的編譯器說明編譯
- 【體系結構】與Checkpoint相關的問題解決思路
- 關於結構體型別的學習結構體型別
- Spring原始碼系列:註解說明Spring原始碼