Nov 06 2025
月亮給蒙娜麗莎 -
智能指針
1、RAII
利用對象生命週期來控制程序資源。在對象構造時獲取資源,在對象析構時釋放資源。
2、智能指針的原理
RAII特性、像指針一樣去使用。
Toperator*()
{
return *_ptr;
}
T*operator-()
{
return _ptr;
}
3、問題
多個智能指針指向同一塊空間,這塊空間會被析構多次。也就是智能指針拷貝有問題。
4、unique_ptr
c++11
,
指針
Nov 06 2025
月亮給蒙娜麗莎 -
棧和隊列
棧和隊列
一、關於模擬棧使用何種模型
1.順序表:尾插尾刪很快,緩存利用率高,但是要擴容
2.單鏈表:使用鏈表頭作為棧頂來插入刪除數據也很快
3.帶頭雙向循環鏈表:也可以,時間也是O(1)
二、棧的模擬實現
//"stack.h"
typedef int type;
typedef struct stack
{
type* a;
int top;
int capacity;
數據結構
,
棧
,
隊列
Sep 18 2023
月亮給蒙娜麗莎 -
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++
May 16 2023
月亮給蒙娜麗莎 -
雙向帶頭循環鏈表
雙向帶頭循環鏈表
1.順序表和鏈表
(1)順序表
優點:
a、支持隨機訪問,很多算法都需要隨機訪問(快排、二分)
b、cpu高速緩存命中率更高(cpu讀數據時,先去找緩存,如果沒有就去內存把數據加載到緩存。在加載時它不是隻加載一個數據,而是附近一片數據,所以如果是數組,它的數據是連續的,都會被加載到緩存了)
缺點:
a、除了最後位置,其他位置插入刪除效率
數據結構
,
鏈表
,
c
May 16 2023
月亮給蒙娜麗莎 -
單鏈表知識點
單鏈表
1.順序表
優點:物理空間連續,支持隨機訪問
缺點:空間不夠就需要擴容,花費時間和空間;插入刪除效率低下
2.單鏈表
優點:按需申請釋放空間;插入刪除常數時間
缺點:不支持隨機訪問
3.注意點
(1)在修改指針本身的內容時,也就是改變指針本身存儲的地址,我們需要的是二級指針
void list_push_back(struct node** head, type x)
{
stru
數據結構
,
鏈表
,
c