diff options
Diffstat (limited to 'zh-cn/md_doc_faq_8zh-cn.html')
-rw-r--r-- | zh-cn/md_doc_faq_8zh-cn.html | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/zh-cn/md_doc_faq_8zh-cn.html b/zh-cn/md_doc_faq_8zh-cn.html index bdc7c422..2c8f228b 100644 --- a/zh-cn/md_doc_faq_8zh-cn.html +++ b/zh-cn/md_doc_faq_8zh-cn.html @@ -172,17 +172,17 @@ $(document).ready(function(){initNavTree('md_doc_faq_8zh-cn.html','');}); <p class="startli">调用 <code>SetXXX()</code> 方法 - 这些方法会调用析构函数,并重建空的Object或Array:</p> </li> </ol> -<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> d;</div> +<div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> d;</div> <div class="line">...</div> <div class="line">d.SetObject(); <span class="comment">// clear and minimize</span></div> -</div><!-- fragment --><p>另外,也可以参考在 <a href="https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize">C++ swap with temporary idiom</a>中的一种等价的方法: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Swap(d);</div> -</div><!-- fragment --><p> 或者,使用这个稍微长一点的代码也能完成同样的事情: </p><div class="fragment"><div class="line">d.Swap(<a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Move()); </div> +</div><!-- fragment --><p>另外,也可以参考在 <a href="https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Clear-and-minimize">C++ swap with temporary idiom</a>中的一种等价的方法: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Swap(d);</div> +</div><!-- fragment --><p> 或者,使用这个稍微长一点的代码也能完成同样的事情: </p><div class="fragment"><div class="line">d.Swap(<a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(<a class="code" href="namespacerapidjson.html#ae79a4751c1c460ff0de5ecc07874f3e4acf030b422a32c3647c7c5973bd4dd0a9">kObjectType</a>).Move()); </div> </div><!-- fragment --><ol type="1"> <li><p class="startli">如何将一个<code>document</code>节点插入到另一个<code>document</code>中?</p> -<p class="startli">比如有以下两个document(DOM): </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> person;</div> +<p class="startli">比如有以下两个document(DOM): </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> person;</div> <div class="line">person.Parse(<span class="stringliteral">"{\"person\":{\"name\":{\"first\":\"Adam\",\"last\":\"Thomas\"}}}"</span>);</div> <div class="line"></div> -<div class="line"><a class="code" href="namespacerapidjson.html#a660c934c2959121babf799b6cb206659">Document</a> address;</div> +<div class="line"><a class="code" href="namespacerapidjson.html#ace11b5b575baf1cccd5ba5f8586dcdc8">Document</a> address;</div> <div class="line">address.Parse(<span class="stringliteral">"{\"address\":{\"city\":\"Moscow\",\"street\":\"Quiet\"}}"</span>);</div> </div><!-- fragment --><p> 假设我们希望将整个 <code>address</code> 插入到<code>person</code>中,作为其的一个子节点: </p><div class="fragment"><div class="line">{ <span class="stringliteral">"person"</span>: {</div> <div class="line"> <span class="stringliteral">"name"</span>: { <span class="stringliteral">"first"</span>: <span class="stringliteral">"Adam"</span>, <span class="stringliteral">"last"</span>: <span class="stringliteral">"Thomas"</span> },</div> @@ -198,7 +198,7 @@ $(document).ready(function(){initNavTree('md_doc_faq_8zh-cn.html','');}); <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(<span class="stringliteral">"address"</span>, address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> </div><!-- fragment --><p> 当然,如果你不想通过显式地写出<code>address</code>的key来得到其值,可以使用迭代器来实现: </p><div class="fragment"><div class="line"><span class="keyword">auto</span> addressRoot = address.MemberBegin();</div> <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(addressRoot->name, addressRoot->value, person.GetAllocator());</div> -</div><!-- fragment --><p>此外,还可以通过深拷贝address document来实现: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a> addressValue = <a class="code" href="namespacerapidjson.html#afb3fa116c66d834b6f4289d648cc8d6d">Value</a>(address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> +</div><!-- fragment --><p>此外,还可以通过深拷贝address document来实现: </p><div class="fragment"><div class="line"><a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a> addressValue = <a class="code" href="namespacerapidjson.html#aa65fc9fb381b2cbc54f98673eadd6505">Value</a>(address[<span class="stringliteral">"address"</span>], person.GetAllocator());</div> <div class="line">person[<span class="stringliteral">"person"</span>].AddMember(<span class="stringliteral">"address"</span>, addressValue, person.GetAllocator());</div> </div><!-- fragment --><h2>Document/Value (DOM)</h2> <ol type="1"> |