首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本注释的算法与数据结构

文本注释的算法与数据结构
EN

Software Engineering用户
提问于 2016-03-18 13:13:26
回答 2查看 769关注 0票数 1

哪些数据结构用于注释文本,哪些算法负责更新注释位置?在每一个好的文字处理器中都有一个注释功能,比如Microsoft,Google等等。

我可以想象两种方法:一种是用某种标记(例如XML标记)包围注释文本,这会隐式地将注释的位置存储在注释文本中。用户无法看到XML标记,因为它是由文字处理器预先解析的。

另一种方法可以是存储所有评论及其位置的数组,并在注释文本更改时更新这些位置。

还有其他可能的办法吗?具体实现的警告可以是什么?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2016-03-18 14:49:32

我会使用一个包含要注释文本的位置和长度以及注释文本的元组的简单集合来完成。

例如

代码语言:javascript
复制
public class Annotation {
    public int Position;
    public int Length;
    public string Text;
}

在C#中,最受欢迎的收藏似乎是OrderedDictionary。OrderedDictionary允许您按位置查找注释,但也可以按照注释在文本中的出现顺序进行迭代。当用户在文本中导航时,您甚至可以持有指向最近注释的指针。

代码语言:javascript
复制
var dictionary = new OrderedDictionary<int, Annotation>();
票数 2
EN

Software Engineering用户

发布于 2016-03-18 20:07:00

根据你对罗伯特·哈维的回答的评论,你可以把两者结合起来。

标记/xml标记将保持数组中某个项的位置以及某种类型的标识符。这样,标签的大小就减少了,因为它不需要保存注释的内容,并且可以很容易地在它之前输入项时移动。

在需要访问或转储所有注释的内容的情况下,可以利用数组的优势。通常这不包括位置,所以您只需要访问数组,而不是在文档中搜索标记。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/313130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档