スタック ストレージで STL ベクトルを使用する
問題:
C ベクトルのようなものを見つけるヒープの代わりにスタック ストレージを利用するクラスです。
解決策:
Chromium の stack_container.h は、要件に完全に適合する StackVector クラスを提供します。通常のベクトルとほぼ同じように動作しますが、スタック上にデータを割り当てます。
使用法:
<code class="cpp">char buffer[4096];</code>
<code class="cpp">stack_vector<match_item> matches(buffer, sizeof(buffer));</code>
または、クラスによってバッファを内部的に割り当てることもできます:
<code class="cpp">stack_vector<match_item, 256> matches;</code>
<code class="cpp">typedef std::pair<const char *, const char *> comp_list_item; static const size_t comp_list_alloc_size = 128; typedef StackAllocator<comp_list_item, comp_list_alloc_size> comp_list_alloc_type;</code>
<code class="cpp">comp_list_alloc_type::Source match_list_buffer; comp_list_alloc_type match_list_alloc(&match_list_buffer); comp_list_type match_list(match_list_alloc);</code>
<code class="cpp">match_list.reserve(comp_list_alloc_size);</code>
利点:
以上がC でスタックベースのベクトルを使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。