博客 / 列表

月亮給蒙娜麗莎 - 智能指針

1、RAII 利用對象生命週期來控制程序資源。在對象構造時獲取資源,在對象析構時釋放資源。 2、智能指針的原理 RAII特性、像指針一樣去使用。 Toperator*() { return *_ptr; } T*operator-() { return _ptr; } 3、問題 多個智能指針指向同一塊空間,這塊空間會被析構多次。也就是智能指針拷貝有問題。 4、unique_ptr

c++11 , 指針

月亮給蒙娜麗莎 - 棧和隊列

棧和隊列 一、關於模擬棧使用何種模型 1.順序表:尾插尾刪很快,緩存利用率高,但是要擴容 2.單鏈表:使用鏈表頭作為棧頂來插入刪除數據也很快 3.帶頭雙向循環鏈表:也可以,時間也是O(1) 二、棧的模擬實現 //"stack.h" typedef int type; typedef struct stack { type* a; int top; int capacity;

數據結構 , , 隊列

月亮給蒙娜麗莎 - C++的強制類型轉換

C++有了四個強制類型轉化的操作符。 1、static_cast 之前C語言會發生的隱式類型轉化用此操作符,它適用於意義相近的類型之間的相互轉化。 double d = 1.11; int a = static_castint(d); 2、reinterpret_cast 用於無關類型的相互轉換。 int a = 10; int *p = reinterpret_castint*(a); 3、co

語法 , c++

月亮給蒙娜麗莎 - 雙向帶頭循環鏈表

雙向帶頭循環鏈表 1.順序表和鏈表 (1)順序表 優點: a、支持隨機訪問,很多算法都需要隨機訪問(快排、二分) b、cpu高速緩存命中率更高(cpu讀數據時,先去找緩存,如果沒有就去內存把數據加載到緩存。在加載時它不是隻加載一個數據,而是附近一片數據,所以如果是數組,它的數據是連續的,都會被加載到緩存了) 缺點: a、除了最後位置,其他位置插入刪除效率

數據結構 , 鏈表 , c

月亮給蒙娜麗莎 - 單鏈表知識點

單鏈表 1.順序表 優點:物理空間連續,支持隨機訪問 缺點:空間不夠就需要擴容,花費時間和空間;插入刪除效率低下 2.單鏈表 優點:按需申請釋放空間;插入刪除常數時間 缺點:不支持隨機訪問 3.注意點 (1)在修改指針本身的內容時,也就是改變指針本身存儲的地址,我們需要的是二級指針 void list_push_back(struct node** head, type x) { stru

數據結構 , 鏈表 , c