六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

C/C++字符串处理(5):std::deque与std::TextPool

[复制链接]

升级  16.15%

427

主题

427

主题

427

主题

探花

Rank: 6Rank: 6

积分
1323
 楼主| 发表于 2013-1-26 13:52:06 | 显示全部楼层 |阅读模式
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[BlockSize];

std::vector<Block*> m_storage;
iterator m_first, m_last;
};
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表