Macos 在插入和搜索正常路径的trie中,ascii 1-31是否值得考虑?

Macos 在插入和搜索正常路径的trie中,ascii 1-31是否值得考虑?,macos,path,trie,Macos,Path,Trie,我正在研究一个trie数据结构,它可以插入和搜索正常路径 路径可以包含unicode中的任何字符,因此为了在utf-8中完全表示它,trie中的数组需要包含所有256个ascii的下一个节点 但我也担心trie占用的空间和插入时间。 设置trie的条件很少会插入unicode字符(我的意思是128-255 ascii)。所以我只需要设置一个if条件来拒绝包含ascii 127以上的路径。我认为ascii 1-31也不相关,尽管我对此不确定。由于1-31个字符类似于回车、esc等,我可以简单地继续

我正在研究一个trie数据结构,它可以插入和搜索正常路径

路径可以包含unicode中的任何字符,因此为了在utf-8中完全表示它,trie中的数组需要包含所有256个ascii的下一个节点

但我也担心trie占用的空间和插入时间。
设置trie的条件很少会插入unicode字符(我的意思是128-255 ascii)。所以我只需要设置一个if条件来拒绝包含ascii 127以上的路径。我认为ascii 1-31也不相关,尽管我对此不确定。由于1-31个字符类似于回车、esc等,我可以简单地继续循环而不插入它们吗?在真实场景中,是否可能遇到由于ascii 1-31而实际可微的路径?

回答这个老问题,在
macOS上,ascii 13用于表示可能出现在许多路径中的自定义图标。感谢@EricPostpischil在评论中这样说

所有介于
1-31
之间的其他字符在路径中显示得很少

另外,
macOS
用户大多具有不区分大小写的路径,因此通常同时考虑小写和大写也是无用的

附言:


虽然这个问题似乎是基于观点的,但实际上并不是,因为它可以得到非常简洁的回答。它试图询问
macOS
上路径中字符的出现频率。(很抱歉让人困惑的标题,我当时是一个noob,现在更改它会让所有关于它的评论变得荒谬)

回答这个老问题,在
macOS上,ascii 13用于表示可能出现在许多路径中的自定义图标。感谢@EricPostpischil在评论中这样说

所有介于
1-31
之间的其他字符在路径中显示得很少

另外,
macOS
用户大多具有不区分大小写的路径,因此通常同时考虑小写和大写也是无用的

附言:


虽然这个问题似乎是基于观点的,但实际上并不是,因为它可以得到非常简洁的回答。它试图询问
macOS
上路径中字符的出现频率。(很抱歉让人困惑的标题,我当时是一个noob,现在更改它会让所有关于它的评论变得荒谬)

0是UTF-8字符串终止符。在那之后就不会有什么了。至于1-31,我不知道。对于那些也想知道trie是什么的人:请注意,有效的UTF-8不能包含字节0xC0或0xC1,也不能包含0xF5..0xFF。文件系统是否可以包含包含这些字节的名称成为一个有趣的问题。再说一次,是否值得忽视这些问题,而不是在它们出现时处理它们,这有待讨论。另请参见macOS在文件名中使用字符13;当为文件夹配置自定义图标时,将在其中放置一个名为“icon ^M”的隐藏文件。您是否希望通过区分某些字符来进行trie插入/搜索获得任何优势?如果是关于性能(时间或空间),我建议不要这样做,性能增益(如果有的话)应该是边际的。另一方面,我认为一个可以处理所有情况的trie,以及它定义的所有类型的字符,比一个最终运行速度快0.5%,但在出现异常字符的那天会崩溃或出现错误的trie要好。0是UTF-8字符串终止符。在那之后就不会有什么了。至于1-31,我不知道。对于那些也想知道trie是什么的人:请注意,有效的UTF-8不能包含字节0xC0或0xC1,也不能包含0xF5..0xFF。文件系统是否可以包含包含这些字节的名称成为一个有趣的问题。再说一次,是否值得忽视这些问题,而不是在它们出现时处理它们,这有待讨论。另请参见macOS在文件名中使用字符13;当为文件夹配置自定义图标时,将在其中放置一个名为“icon ^M”的隐藏文件。您是否希望通过区分某些字符来进行trie插入/搜索获得任何优势?如果是关于性能(时间或空间),我建议不要这样做,性能增益(如果有的话)应该是边际的。另一方面,我认为一个可以处理所有情况的trie,以及它定义的所有类型的字符,比一个最终运行速度快0.5%,但在出现异常字符的那一天崩溃或出现bug的trie要好。