下载
开发软件
账户
下载
开发软件
登录
我忘记用户名和密码了
创建帐户
语言
帮助
语言
帮助
×
登录
登录名
密码
×
我忘记用户名和密码了
简体中文翻译状态
类别:
软件
用户
PersonalForge
Magazine
Wiki
搜索
OSDN
>
浏览软件
>
Text Editors
>
Vi/Vim
>
ViVi version 5.0 Free
>
Wiki
>
バッファ
ViVi version 5.0 Free
描述
项目概述
开发人员仪表板
项目的网页
开发人员
Image Gallery
List of RSS Feeds
Activity
统计
历史
下载
List of Releases
统计
源代码
Code Repository list
Subversion
查看仓库
任务单
Ticket List
里程碑列表
Type List
组件列表
List of frequently used tickets/RSS
Submit New Ticket
文档
FrontPage
Title index
Recent changes
沟通
论坛
List of Forums
开发者论坛 (1)
帮助论坛 (1)
公开讨论 (2)
Mailing Lists
list of ML
新闻
edit
|
Title Index
|
Recent Changes
|
最近更改
2011-06-06
スケジュール
2011-06-05
viコマンド
2011-05-16
exコマンド
2011-05-11
ビルド方法
FrontPage
2011-05-10
ユーザを魔法少女・魔法少年にする
最新文件发布
vivi-5.0-win (5.0.028 Dev)
2011-06-07 13:06
Wiki Guide
Wiki Syntax
Wiki Links
Block Processor
Plugins
Sidebar
Affiliate Setting
Sidebar
关于 Sidebar
编辑 – Sidebar
1次元のテキスト情報を保持するクラスを
バッファ
と呼ぶ。
バッファは以下の機能を持つ。
テキスト情報参照
テキスト削除・挿入
上記メソッドで、参照範囲・削除範囲・挿入位置を示すために、バッファ先頭からのオフセット(size_t)を用いる。
バッファのデータ構造には様々な物があり、どれも一長一短である。
数メガバイトまでの比較的小容量であれば gap_vector が処理時間・使用メモリサイズともに高性能である。
数100メガバイト以上になると、gap_vector はメモリ移動量が多くなり処理時間を要する場合がある。
そのような場合は piece_table 等の階層的データ構造の方が優れると考えられる。
バッファクラスのインタフェースは std::vector に準じたものにしておく。
ただし、編集位置の指定はイテレータではなくインデックス(0..*)を用いることとする。これは編集位置の保持を簡単にするためである。
インタフェースさえ同じであれば、別のバッファクラスに置き換えることは容易である。
参考文献:
Data Structures for Text Sequences
gap_vector
テキストエディタ用バッファの各種データ構造とその評価
テキストエディタ用バッファの各種データ構造とその評価 (2)
バイナリエディタ用仮想バッファの実装と評価
テキストエディタ用仮想バッファの実装と評価
関連項目:
テキストカーソル
行管理
:
You need to input post key "Asdorl5" to this box: