首頁 > 後端開發 > C++ > 主體

如何在 C 中使用基於堆疊的向量?

Barbara Streisand
發布: 2024-11-03 09:31:02
原創
306 人瀏覽過

How to Use a Stack-Based Vector in C  ?

使用有堆疊儲存的STL 向量

問題:

問題:

問題:

問題:

  • 問題:
<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>
登入後複製
    解決方案:
Chromium 的 stack_container.h 提供了一個完全符合要求的 StackVector 類別。它的行為幾乎與普通向量相同,但在堆疊上分配資料。
<code class="cpp">match_list.reserve(comp_list_alloc_size);</code>
登入後複製

用法:

  • 建立指定大小的緩衝區:
  • 建立StackVector 物件:
  • 建立StackVector 物件:
或者,緩衝區可以由類別內部分配:自訂分配器的大小:實例化分配器並建構向量:為向量保留記憶體:優點直接取代STL 向量在堆疊上分配數據,改進效率可自訂分配器大小在溢出時自動回退到堆分配的選項

以上是如何在 C 中使用基於堆疊的向量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板