還可以和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...