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

📄 ptypes.h.html

📁 PTypes是一个扩充了多线程和网络功能的STL库
💻 HTML
📖 第 1 页 / 共 5 页
字号:
string fill(<font CLASS=keytype>int</font> width, <font CLASS=keytype>char</font> pad);string pad(<font CLASS=keyword>const</font> string&amp; s, <font CLASS=keytype>int</font> width, <font CLASS=keytype>char</font> c, <font CLASS=keytype>bool</font> left <font CLASS=symbols>=</font> <font CLASS=keyword>true</font>);string itostring(large value, <font CLASS=keytype>int</font> base, <font CLASS=keytype>int</font> width <font CLASS=symbols>=</font> <font CLASS=integer>0</font>, <font CLASS=keytype>char</font> pad <font CLASS=symbols>=</font> <font CLASS=integer>0</font>);string itostring(ularge value, <font CLASS=keytype>int</font> base, <font CLASS=keytype>int</font> width <font CLASS=symbols>=</font> <font CLASS=integer>0</font>, <font CLASS=keytype>char</font> pad <font CLASS=symbols>=</font> <font CLASS=integer>0</font>);string itostring(<font CLASS=keytype>int</font> value, <font CLASS=keytype>int</font> base, <font CLASS=keytype>int</font> width <font CLASS=symbols>=</font> <font CLASS=integer>0</font>, <font CLASS=keytype>char</font> pad <font CLASS=symbols>=</font> <font CLASS=integer>0</font>);string itostring(<font CLASS=keytype>unsigned</font> value, <font CLASS=keytype>int</font> base, <font CLASS=keytype>int</font> width <font CLASS=symbols>=</font> <font CLASS=integer>0</font>, <font CLASS=keytype>char</font> pad <font CLASS=symbols>=</font> <font CLASS=integer>0</font>);string itostring(large v);string itostring(ularge v);string itostring(<font CLASS=keytype>int</font> v);string itostring(<font CLASS=keytype>unsigned</font> v);large  stringtoi(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*);large  stringtoie(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*);ularge stringtoue(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>*, <font CLASS=keytype>int</font> base);string lowercase(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* s);string lowercase(<font CLASS=keyword>const</font> string&amp; s);<font CLASS=keytype>char</font> hex4(<font CLASS=keytype>char</font> c);<font CLASS=keyword>inline</font> <font CLASS=keytype>char</font> locase(<font CLASS=keytype>char</font> c)     { <font CLASS=keyword>if</font> (c &gt;<font CLASS=symbols>=</font> <font CLASS=sinquot>'A'</font> &amp;&amp; c &lt;<font CLASS=symbols>=</font> <font CLASS=sinquot>'Z'</font>) <font CLASS=keyword>return</font> <font CLASS=keytype>char</font>(c + <font CLASS=integer>32</font>); <font CLASS=keyword>return</font> c; }<font CLASS=keyword>inline</font> <font CLASS=keytype>char</font> upcase(<font CLASS=keytype>char</font> c)     { <font CLASS=keyword>if</font> (c &gt;<font CLASS=symbols>=</font> <font CLASS=sinquot>'a'</font> &amp;&amp; c &lt;<font CLASS=symbols>=</font> <font CLASS=sinquot>'z'</font>) <font CLASS=keyword>return</font> <font CLASS=keytype>char</font>(c - <font CLASS=integer>32</font>); <font CLASS=keyword>return</font> c; }<font CLASS=keyword>inline</font> <font CLASS=keytype>int</font> hstrlen(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* p) <font CLASS=comment>// some Unix systems do not accept NULL</font>    { <font CLASS=keyword>return</font> p <font CLASS=symbols>==</font> nil ? <font CLASS=integer>0</font> : (<font CLASS=keytype>int</font>)strlen(p); }<font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// --- character set -------------------------------------------------- //</font><font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=keyword>const</font> <font CLASS=keytype>int</font>  _csetbits <font CLASS=symbols>=</font> <font CLASS=integer>256</font>;<font CLASS=keyword>const</font> <font CLASS=keytype>int</font>  _csetbytes <font CLASS=symbols>=</font> _csetbits / <font CLASS=integer>8</font>;<font CLASS=keyword>const</font> <font CLASS=keytype>int</font>  _csetwords <font CLASS=symbols>=</font> _csetbytes / <font CLASS=keyword>sizeof</font>(<font CLASS=keytype>int</font>);<font CLASS=keyword>const</font> <font CLASS=keytype>char</font> _csetesc <font CLASS=symbols>=</font> <font CLASS=sinquot>'~'</font>;<font CLASS=keyword>class</font> cset {<font CLASS=preproc><font CLASS=keyword>protected</font>:</font>    <font CLASS=keytype>char</font> data[_csetbytes];    <font CLASS=keytype>void</font> assign(<font CLASS=keyword>const</font> cset&amp; s)                  { memcpy(data, s.data, _csetbytes); }    <font CLASS=keytype>void</font> assign(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* setinit);    <font CLASS=keytype>void</font> clear()                                { memset(data, <font CLASS=integer>0</font>, _csetbytes); }    <font CLASS=keytype>void</font> fill()                                 { memset(data, <font CLASS=symbols>-</font><font CLASS=integer>1</font>, _csetbytes); }    <font CLASS=keytype>void</font> include(<font CLASS=keytype>char</font> b)                        { data[uchar(b) / <font CLASS=integer>8</font>] <font CLASS=symbols>|=</font> uchar(<font CLASS=integer>1</font> &lt;&lt; (uchar(b) % <font CLASS=integer>8</font>)); }    <font CLASS=keytype>void</font> include(<font CLASS=keytype>char</font> min, <font CLASS=keytype>char</font> max);    <font CLASS=keytype>void</font> exclude(<font CLASS=keytype>char</font> b)                        { data[uchar(b) / <font CLASS=integer>8</font>] &amp;<font CLASS=symbols>=</font> uchar(~(<font CLASS=integer>1</font> &lt;&lt; (uchar(b) % <font CLASS=integer>8</font>))); }    <font CLASS=keytype>void</font> unite(<font CLASS=keyword>const</font> cset&amp; s);    <font CLASS=keytype>void</font> subtract(<font CLASS=keyword>const</font> cset&amp; s);    <font CLASS=keytype>void</font> intersect(<font CLASS=keyword>const</font> cset&amp; s);    <font CLASS=keytype>void</font> invert();    <font CLASS=keytype>bool</font> contains(<font CLASS=keytype>char</font> b) <font CLASS=keyword>const</font>                 { <font CLASS=keyword>return</font> (data[uchar(b) / <font CLASS=integer>8</font>] &amp; (<font CLASS=integer>1</font> &lt;&lt; (uchar(b) % <font CLASS=integer>8</font>))) <font CLASS=symbols>!=</font> <font CLASS=integer>0</font>; }    <font CLASS=keytype>bool</font> eq(<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>                { <font CLASS=keyword>return</font> memcmp(data, s.data, _csetbytes) <font CLASS=symbols>==</font> <font CLASS=integer>0</font>; }    <font CLASS=keytype>bool</font> le(<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>;<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    cset()                                      { clear(); }    cset(<font CLASS=keyword>const</font> cset&amp; s)                         { assign(s); }    cset(<font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* setinit)                   { assign(setinit); }    cset&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font>  (<font CLASS=keyword>const</font> cset&amp; s)            { assign(s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>+=</font> (<font CLASS=keyword>const</font> cset&amp; s)            { unite(s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>+=</font> (<font CLASS=keytype>char</font> b)                   { include(b); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset  <font CLASS=keyword>operator</font><font CLASS=symbols>+</font>  (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; <font CLASS=keyword>return</font> t += s; }    cset  <font CLASS=keyword>operator</font><font CLASS=symbols>+</font>  (<font CLASS=keytype>char</font> b) <font CLASS=keyword>const</font>             { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; <font CLASS=keyword>return</font> t += b; }    cset&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>-=</font> (<font CLASS=keyword>const</font> cset&amp; s)            { subtract(s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>-=</font> (<font CLASS=keytype>char</font> b)                   { exclude(b); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset  <font CLASS=keyword>operator</font><font CLASS=symbols>-</font>  (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; <font CLASS=keyword>return</font> t -= s; }    cset  <font CLASS=keyword>operator</font><font CLASS=symbols>-</font>  (<font CLASS=keytype>char</font> b) <font CLASS=keyword>const</font>             { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; <font CLASS=keyword>return</font> t -= b; }    cset&amp; <font CLASS=keyword>operator</font>*<font CLASS=symbols>=</font> (<font CLASS=keyword>const</font> cset&amp; s)            { intersect(s); <font CLASS=keyword>return</font> *<font CLASS=keyword>this</font>; }    cset  <font CLASS=keyword>operator</font>*  (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; <font CLASS=keyword>return</font> t *<font CLASS=symbols>=</font> s; }    cset  <font CLASS=keyword>operator</font><font CLASS=symbols>!</font>  () <font CLASS=keyword>const</font>                   { cset t <font CLASS=symbols>=</font> *<font CLASS=keyword>this</font>; t.invert(); <font CLASS=keyword>return</font> t; }    <font CLASS=keytype>bool</font>  <font CLASS=keyword>operator</font><font CLASS=symbols>==</font> (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { <font CLASS=keyword>return</font> eq(s); }    <font CLASS=keytype>bool</font>  <font CLASS=keyword>operator</font><font CLASS=symbols>!=</font> (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { <font CLASS=keyword>return</font> !eq(s); }    <font CLASS=keytype>bool</font>  <font CLASS=keyword>operator</font>&lt;<font CLASS=symbols>=</font> (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { <font CLASS=keyword>return</font> le(s); }    <font CLASS=keytype>bool</font>  <font CLASS=keyword>operator</font>&gt;<font CLASS=symbols>=</font> (<font CLASS=keyword>const</font> cset&amp; s) <font CLASS=keyword>const</font>      { <font CLASS=keyword>return</font> s.le(*<font CLASS=keyword>this</font>); }    <font CLASS=keyword>friend</font> cset <font CLASS=keyword>operator</font><font CLASS=symbols>+</font> (<font CLASS=keytype>char</font> b, <font CLASS=keyword>const</font> cset&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font>&amp; (<font CLASS=keytype>char</font> b, <font CLASS=keyword>const</font> cset&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> assign(cset&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* setinit);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> clear(cset&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> fill(cset&amp; s);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> include(cset&amp; s, <font CLASS=keytype>char</font> b);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> include(cset&amp; s, <font CLASS=keytype>char</font> min, <font CLASS=keytype>char</font> max);    <font CLASS=keyword>friend</font> <font CLASS=keytype>void</font> exclude(cset&amp; s, <font CLASS=keytype>char</font> b);    <font CLASS=keyword>friend</font> string asstring(<font CLASS=keyword>const</font> cset&amp; s);};<font CLASS=keyword>inline</font> cset <font CLASS=keyword>operator</font><font CLASS=symbols>+</font> (<font CLASS=keytype>char</font> b, <font CLASS=keyword>const</font> cset&amp; s)     { <font CLASS=keyword>return</font> s <font CLASS=symbols>+</font> b; }<font CLASS=keyword>inline</font> <font CLASS=keytype>bool</font> <font CLASS=keyword>operator</font>&amp; (<font CLASS=keytype>char</font> b, <font CLASS=keyword>const</font> cset&amp; s)     { <font CLASS=keyword>return</font> s.contains(b); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> assign(cset&amp; s, <font CLASS=keyword>const</font> <font CLASS=keytype>char</font>* setinit)  { s.assign(setinit); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> clear(cset&amp; s)                        { s.clear(); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> fill(cset&amp; s)                         { s.fill(); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> include(cset&amp; s, <font CLASS=keytype>char</font> b)              { s.include(b); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> include(cset&amp; s, <font CLASS=keytype>char</font> min, <font CLASS=keytype>char</font> max)  { s.include(min, max); }<font CLASS=keyword>inline</font> <font CLASS=keytype>void</font> exclude(cset&amp; s, <font CLASS=keytype>char</font> b)              { s.exclude(b); }<font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// --- basic abstract classes ----------------------------------------- //</font><font CLASS=comment>// -------------------------------------------------------------------- //</font><font CLASS=comment>// basic class with virtual destructor; historically was used as a base</font><font CLASS=comment>// for all list items. also helps to count the number of created and</font><font CLASS=comment>// destroyed objects in a program (objalloc global) in DEBUG mode, to</font><font CLASS=comment>// detect memory leaks. most classes in ptypes are derived from unknown.</font><font CLASS=keyword>extern</font> <font CLASS=keytype>int</font> objalloc;<font CLASS=keyword>class</font> unknown {<font CLASS=preproc><font CLASS=keyword>private</font>:</font>    // make all classes non-copyable by <font CLASS=keyword>default</font>    unknown(<font CLASS=keyword>const</font> unknown&amp;);    <font CLASS=keyword>const</font> unknown&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font> (<font CLASS=keyword>const</font> unknown&amp;);<font CLASS=preproc><font CLASS=keyword>public</font>:</font><font CLASS=preproc>#ifdef</font> COUNT_OBJALLOC     unknown()           { pincrement(&amp;objalloc); }    <font CLASS=keyword>virtual</font> ~unknown()  { pdecrement(&amp;objalloc); }<font CLASS=preproc>#else</font>     unknown()           { }    <font CLASS=keyword>virtual</font> ~unknown()  { }<font CLASS=preproc>#endif</font> };<font CLASS=keyword>typedef</font> unknown* punknown;<font CLASS=comment>// provide non-copyable base for all classes that are</font><font CLASS=comment>// not derived from 'unknown'</font><font CLASS=keyword>class</font> noncopyable {<font CLASS=preproc><font CLASS=keyword>private</font>:</font>    noncopyable(<font CLASS=keyword>const</font> noncopyable&amp;);    <font CLASS=keyword>const</font> noncopyable&amp; <font CLASS=keyword>operator</font><font CLASS=symbols>=</font> (<font CLASS=keyword>const</font> noncopyable&amp;);<font CLASS=preproc><font CLASS=keyword>public</font>:</font>    noncopyable() {}

⌨️ 快捷键说明

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