保留字典顺序的基元类型的字符串编码

nil*_*ton 5 c++ string encode lexicographic

有没有人知道一个库,用于将一些原始类型(如整数,浮点数,字符串等)编码为字符串,但保留了类型的字典顺序

理想情况下,我正在寻找一个C++库,但其他语言也很好.此外,可以假设格式不需要在字符串本身中编码(也就是说,如果它是int64/string/float,则编码的字符串不需要对此信息进行编码,只编码数据就足够了).

小智 9

看一下本文("高效词典数字编码"),它显示了如何将任何数字类型表示为字符串,这样字符串的字典顺序与基础数字的数字顺序相同.它可以处理任意长度的数字.

http://www.zanopha.com/docs/elen.pdf

  • 刚实施了这个.作品提供了一个小修改.ASCII"+"字符的整数值为43,较低且为"0"(整数值为48).这提供了错误的排序语义.通过使用ASCII平面中较高的字符,如"="(整数值61),即使比较具有不同数量的前缀字符的字符串,也会得到正确的结果. (2认同)

Joh*_*nck -1

只需在固定的列宽中写入带有前导零的数值,然后像平常一样写入字符串。像这样:

0.1 -> 0000000.1000000
123 -> 0000123.0000000
foo -> foo
X   -> X
Run Code Online (Sandbox Code Playgroud)

然后您可以按文本排序(例如,sort不带 的Unix -n)。那个怎么样?