Algorithm 数据是如何存储在文本框中的?

Algorithm 数据是如何存储在文本框中的?,algorithm,data-structures,text,string,ropes,Algorithm,Data Structures,Text,String,Ropes,我在读这篇关于 [数字来源] 我想知道今天的浏览器是否使用这种数据结构来实现文本框。我们是否使用绳索或其他数据结构来实现这一点 除了文本框,还有其他地方用绳子吗 我问题的前一个标题不知何故也意味着我想知道字符串“记住”是如何发生的——当我打字时,我会得到建议。我现在改了 我想知道的是,当我键入字符串时,使用什么数据结构来存储它。它是简单的字符数组还是复杂的绳子?很可能只使用底层操作系统/窗口系统提供的任何文本框。我想,至少在大多数情况下,对于文本框来说,这是一个简单的线性数组——大多数情况下

我在读这篇关于

[数字来源]

我想知道今天的浏览器是否使用这种数据结构来实现文本框。我们是否使用绳索或其他数据结构来实现这一点

除了文本框,还有其他地方用绳子吗


我问题的前一个标题不知何故也意味着我想知道字符串“记住”是如何发生的——当我打字时,我会得到建议。我现在改了


我想知道的是,当我键入字符串时,使用什么数据结构来存储它。它是简单的字符数组还是复杂的绳子?

很可能只使用底层操作系统/窗口系统提供的任何文本框。我想,至少在大多数情况下,对于文本框来说,这是一个简单的线性数组——大多数情况下,几乎不需要保存接近绳子之类的东西真正有意义所需的数据量。

问题(在一个简单的情况下)是找到包含某个子字符串的所有字符串。因为它并不总是搜索普通的作品甚至信件,我猜应该是某种索引。例如,对于三角图:

  • 对于要索引的每个字符串,查找3个字符(三角形)的所有(重叠)子序列
  • 对于每个子序列,存储它出现在其中的所有字符串的列表。这是索引,它是来自trigram->字符串列表的映射
  • 如果用户键入一个关键字,找到它的三叉树,在索引中查找它们,并返回相应字符串列表的交集
  • 这是一种快速返回可能包含单词的字符串的方法。为了获得更高的精度,可以将结果过滤到包含整个子字符串的结果


    浏览器可以通过各种方式增强这一点,例如,如果键入多个单词,它们可以搜索每个单词并返回包含其中任何一个单词的URL。

    它们使用前缀匹配算法。Trie(及其高级版本)是实现最长前缀匹配的最佳方法

    铬源:

    注:我猜你的意思是他们在你打字时如何“记住”文本


    如果你指的是每个文本框如何包含你先前键入的内容的列表,并在弹出窗口中显示出来,即每次“提交”文本时都会附加到该列表中。

    那么,我们所看到的区别,例如Firefox文本框与Google Chrome文本框的区别,只在于其呈现方式?@Lazer:嗯,我想这取决于你在说什么文本框。我想的主要是那些内置在浏览器中的内容(例如,选择你的主页)。对于HTML表单中的文本字段之类的内容,它们无疑提供了自己的拼写检查(例如,两者都有操作系统提供的通常缺少的拼写检查)。然而,在任何一种情况下,我猜文本都存储在一个简单的数组中。