C/C++字符串处理(5):std::deque与std::TextPool
C/C++字符串处理(5):std::deque与std::TextPool许式伟
2008-4-4
引子
std::TextPool 基于 std::deque 实现。所以尽管本文讨论 std::deque,但是所有的结论对 std::TextPool 同样有效。
实现概要
顾名思义,这是一个“双向队列(double-ended queue)”。这意味着从队列开始和结束处插入(删除)数据的性能很好。为了达到这个目的,std::deque 基于一种分段连续的、介于数组和链表之间的数据结构,示意如下:
<div class="code"><div class="hl-main">template <class _E>
class deque
{
enum { BlockSize = 512 };
typedef _E Block;
std::vector<Block*> m_storage;
iterator m_first, m_last;
};
页:
[1]