⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptypes.h.html

📁 PTypes是一个扩充了多线程和网络功能的STL库
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<font CLASS=preproc>#define</font> PTR_TO_PSTRING(p)   (pstring(&amp;(p))) <font CLASS=preproc>#define</font> PTR_TO_STRING(p)    (*PTR_TO_PSTRING(p)) <font CLASS=keyword>extern</font> <font CLASS=keytype>char</font>* emptystr;<font CLASS=keyword>class</font> string {    <font CLASS=keyword>friend</font> <font CLASS=keyword>class</font> variant;<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    <font CLASS=keytype>char</font>* data;    <font CLASS=keytype>static</font> <font CLASS=keytype>void</font> idxerror();    <font CLASS=keytype>void</font> _alloc(<font CLASS=keytype>int</font>);    <font CLASS=keytype>void</font> _realloc(<font CLASS=keytype>int</font>);    <font CLASS=keytype>void</font> _free();    <font CLASS=keytype>void</font> initialize()  { data <font CLASS=symbols>=</font> emptystr; }    <font CLASS=keytype>void</font> initialize(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keytype>int</font>);    <font CLASS=keytype>void</font> initialize(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*);    <font CLASS=keytype>void</font> initialize(<font CLASS=keytype>char</font>);    <font CLASS=keytype>void</font> initialize(<font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keytype>void</font> initialize(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keytype>int</font>, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keytype>int</font>);    <font CLASS=keytype>void</font> initialize(<font CLASS=keyword>const</font> variant&amp;);    <font CLASS=keytype>void</font> finalize();    <font CLASS=keytype>void</font> assign(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keytype>int</font>);    <font CLASS=keytype>void</font> assign(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*);    <font CLASS=keytype>void</font> assign(<font CLASS=keyword>const</font> string&amp;);    <font CLASS=keytype>void</font> assign(<font CLASS=keytype>char</font>);<font CLASS=preproc>#ifdef</font> CHECK_BOUNDS     <font CLASS=keytype>void</font> idx(<font CLASS=keytype>int</font> index) <font CLASS=keyword>const</font>  { <font CLASS=keyword>if</font> (<font CLASS=keytype>unsigned</font>(index) &gt;<font CLASS=symbols>=</font> <font CLASS=keytype>unsigned</font>(STR_LENGTH(data))) idxerror(); }<font CLASS=preproc>#else</font>     <font CLASS=keytype>void</font> idx(<font CLASS=keytype>int</font>) <font CLASS=keyword>const</font>        { }<font CLASS=preproc>#endif</font>     string(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, <font CLASS=keytype>int</font> len1, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s2, <font CLASS=keytype>int</font> len2)  { initialize(s1, len1, s2, len2); }<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    length(<font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    refcount(<font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   assign(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> len);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   clear(string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font>   isempty(<font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>char</font>*  setlength(string&amp;, <font CLASS=keytype>int</font>);    <font CLASS=keyword>friend</font> <font CLASS=keytype>char</font>*  unique(string&amp;);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   concat(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc, <font CLASS=keytype>int</font> catlen);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   concat(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   concat(string&amp; s, <font CLASS=keytype>char</font> s1);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   concat(string&amp; s, <font CLASS=keyword>const</font> string&amp; s1);    <font CLASS=keyword>friend</font> string copy(<font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> from, <font CLASS=keytype>int</font> cnt);    <font CLASS=keyword>friend</font> string copy(<font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> from);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   ins(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, <font CLASS=keytype>int</font> s1len, string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   ins(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   ins(<font CLASS=keytype>char</font> s1, string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   ins(<font CLASS=keyword>const</font> string&amp; s1, string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   del(string&amp; s, <font CLASS=keytype>int</font> at, <font CLASS=keytype>int</font> cnt);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font>   del(string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    pos(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    pos(<font CLASS=keytype>char</font> s1, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    pos(<font CLASS=keyword>const</font> string&amp; s1, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>int</font>    rpos(<font CLASS=keytype>char</font> s1, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font>   contains(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, <font CLASS=keytype>int</font> len, <font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font>   contains(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1, <font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font>   contains(<font CLASS=keytype>char</font> s1, <font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font>   contains(<font CLASS=keyword>const</font> string&amp; s1, <font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> at);    <font CLASS=keyword>friend</font> string dup(<font CLASS=keyword>const</font> string&amp; s);    string()                                      { initialize(); }    string(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc, <font CLASS=keytype>int</font> initlen)           { initialize(sc, initlen); }    string(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc)                        { initialize(sc); }    string(<font CLASS=keytype>char</font> c)                                { initialize(c); }    string(<font CLASS=keyword>const</font> string&amp; s)                       { initialize(s); }    ~string()                                     { finalize(); }<font CLASS=preproc>#ifdef</font> VARIANT_TYPECAST_HACK     string(<font CLASS=keyword>const</font> variant&amp; v)                      { initialize(v); }<font CLASS=preproc>#endif</font>     string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font>  (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc)           { assign(sc); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font>  (<font CLASS=keytype>char</font> c)                   { assign(c); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font>  (<font CLASS=keyword>const</font> string&amp; s)          { assign(s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>+=</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc)           { concat(*<font CLASS=keyword>this</font>, sc); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>+=</font> (<font CLASS=keytype>char</font> c)                   { concat(*<font CLASS=keyword>this</font>, c); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>+=</font> (<font CLASS=keyword>const</font> string&amp; s)          { concat(*<font CLASS=keyword>this</font>, s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    string  <font CLASS=keyword>operator</font><font CLASS=symbols>+</font>  (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc) <font CLASS=keyword>const</font>;    string  <font CLASS=keyword>operator</font><font CLASS=symbols>+</font>  (<font CLASS=keytype>char</font> c) <font CLASS=keyword>const</font>;    string  <font CLASS=keyword>operator</font><font CLASS=symbols>+</font>  (<font CLASS=keyword>const</font> string&amp; s) <font CLASS=keyword>const</font>;    <font CLASS=keyword>friend</font> string <font CLASS=keyword>operator</font><font CLASS=symbols>+</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keyword>friend</font> string <font CLASS=keyword>operator</font><font CLASS=symbols>+</font> (<font CLASS=keytype>char</font> c, <font CLASS=keyword>const</font> string&amp; s);    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc) <font CLASS=keyword>const</font>        { <font CLASS=keyword>return</font> strcmp(data, sc) <font CLASS=symbols>==</font> <font CLASS=integer>0</font>; }    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keytype>char</font>) <font CLASS=keyword>const</font>;    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keyword>const</font> string&amp;) <font CLASS=keyword>const</font>;    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc) <font CLASS=keyword>const</font>        { <font CLASS=keyword>return</font> <font CLASS=symbols>!</font>(*<font CLASS=keyword>this</font> == sc); }    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keytype>char</font> c) <font CLASS=keyword>const</font>                { <font CLASS=keyword>return</font> <font CLASS=symbols>!</font>(*<font CLASS=keyword>this</font> == c); }    <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keyword>const</font> string&amp; s) <font CLASS=keyword>const</font>       { <font CLASS=keyword>return</font> <font CLASS=symbols>!</font>(*<font CLASS=keyword>this</font> == s); }    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keyword>const</font> string&amp;);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keytype>char</font>, <font CLASS=keyword>const</font> string&amp;);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keyword>const</font> string&amp;);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keytype>char</font>, <font CLASS=keyword>const</font> string&amp;);    <font CLASS=keyword>operator</font> <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*() <font CLASS=keyword>const</font>                  { <font CLASS=keyword>return</font> data; }    <font CLASS=keyword>operator</font> <font CLASS=keyword>const</font> uchar*() <font CLASS=keyword>const</font>                 { <font CLASS=keyword>return</font> (uchar*)data; }    <font CLASS=keytype>char</font>&amp;       <font CLASS=keyword>operator</font>[] (<font CLASS=keytype>int</font> i)                { idx(i); <font CLASS=keyword>return</font> unique(*<font CLASS=keyword>this</font>)[i]; }    <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>&amp; <font CLASS=keyword>operator</font>[] (<font CLASS=keytype>int</font> i) <font CLASS=keyword>const</font>          { idx(i); <font CLASS=keyword>return</font> data[i]; }    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> initialize(string&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> initialize(string&amp; s, <font CLASS=keyword>const</font> string&amp; s1);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> initialize(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> finalize(string&amp; s);};<font CLASS=keyword>typedef</font> string* pstring;<font CLASS=keyword>inline</font> <font CLASS=keytype>int</font>  length(<font CLASS=keyword>const</font> string&amp; s)                     { <font CLASS=keyword>return</font> STR_LENGTH(s.data); }<font CLASS=keyword>inline</font> <font CLASS=keytype>int</font>  refcount(<font CLASS=keyword>const</font> string&amp; s)                   { <font CLASS=keyword>return</font> STR_REFCOUNT(s.data); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> assign(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* buf, <font CLASS=keytype>int</font> len) { s.assign(buf, len); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> clear(string&amp; s)                            { s.finalize(); }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> isempty(<font CLASS=keyword>const</font> string&amp; s)                    { <font CLASS=keyword>return</font> length(s) <font CLASS=symbols>==</font> <font CLASS=integer>0</font>; }<font CLASS=keyword>inline</font> <font CLASS=keytype>int</font>  pos(<font CLASS=keyword>const</font> string&amp; s1, <font CLASS=keyword>const</font> string&amp; s)      { <font CLASS=keyword>return</font> pos(s1.data, s); }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc, <font CLASS=keyword>const</font> string&amp; s){ <font CLASS=keyword>return</font> s <font CLASS=symbols>==</font> sc; }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keytype>char</font> c, <font CLASS=keyword>const</font> string&amp; s)        { <font CLASS=keyword>return</font> s <font CLASS=symbols>==</font> c; }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* sc, <font CLASS=keyword>const</font> string&amp; s){ <font CLASS=keyword>return</font> s <font CLASS=symbols>!=</font> sc; }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keytype>char</font> c, <font CLASS=keyword>const</font> string&amp; s)        { <font CLASS=keyword>return</font> s <font CLASS=symbols>!=</font> c; }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> initialize(string&amp; s)                       { s.initialize(); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> initialize(string&amp; s, <font CLASS=keyword>const</font> string&amp; s1)     { s.initialize(s1); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> initialize(string&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s1)       { s.initialize(s1); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> finalize(string&amp; s)                         { s.finalize(); }<font CLASS=keyword>extern</font> <font CLASS=keytype>int</font> stralloc;<font CLASS=keyword>extern</font> string nullstring;<font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// --- string utilities ----------------------------------------------- //</font><font CLASS=comment>// -------------------------------------------------------------------- //</font>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -