仿照String類,實現簡易版MyString類

2021-10-08 21:23:34 字數 3718 閱讀 7722

還可以和vector一起用

【別忘了寫在自己的命名空間,防止衝突】

#ifndef litestring_h_included

#define litestring_h_included

#include

#include

namespace mystl

else

return dest;}}

size_t strlen

(const

char

* p)

return len;

}char

*strcat

(char

*dest,

const

char

* src)

while((

*p++

=*src++)!=

'\0');

return dest;

}int

strcmp

(const

char

* p1,

const

char

* p2)

++p1;

++p2;

}return

*p1 -

*p2;

}class

litestring

litestring

(const

char

*p)else

}litestring

(const litestring &oth)

litestring

(litestring &&oth)

size_t size()

const

char

*c_str()

const

char

&operator

(size_t n)

litestring operator+(

const litestring& oth)

litestring&

operator=(

const litestring& oth)

delete

data;

length =

strlen

(oth.data)

; data =

newchar

[length +1]

;strcpy

(data, oth.data)

;return

*this;}

friend std::istream&

operator

>>

(std::istream &is, litestring& str)

friend std::ostream&

operator

<<

(std::ostream &os, litestring& str)

~litestring()

//front back empty均為標準string操作

const

char

front()

return

'\0';}

const

char

back()

return

'\0';}

bool

empty()

//關係操作符,其中 operator< 和 operator==是核心,其他的都是轉呼叫這些

friend

bool

operator

<

(const litestring& cur,

const litestring &oth)

bool

operator==(

const litestring &oth)

bool

operator

>

(const litestring &oth)

bool

operator

<=

(const litestring &oth)

bool

operator

>=

(const litestring &oth)

bool

operator!=(

const litestring &oth)

private

:char

*data;

//乙個指向 new 後記憶體的指標

size_t length;

//資料長度};

}#endif

// litestring_h_included

簡易版redux實現

redux其實只有幾個重要的api,getstate,subscribe和dispatch,getstate用來獲取狀態,subscribe監聽狀態的改變,dispatch派發事件改變狀態,下面就來看下。首先是createstore,它接收三個引數,分別是reducer函式,初始狀態值,還有就是中介...

簡易版celery的實現

最近學習了下,celery原始碼,看了一點點皮毛後,自己動手寫了個簡易的celery,通過redis作為broker,沒有複雜的路由匹配規則,佇列和任務之間乙個直接匹配的簡易規則。這裡對專案簡單的記錄下。是celery類所在位置,具體實現了celery的啟動,載入配置檔案,任務裝飾器 utils 下...

用C實現簡易版掃雷

用兩個盤實現該遊戲 乙個是雷盤,乙個是展示盤 就是玩遊戲的盤 該 可以實現以下幾個功能 1.列印雷盤和展示盤。隨機產生雷的位置 2.保證第一次掃雷不會被炸死。3.點一下可以展開一片。4.判斷是否贏。注意 要注意兩個盤的座標和下標。還有,呼叫函式和傳參。test.c include include i...