我需要在 C++ 中保存这样的字符串,并且需要进行名称比较。有什么算法可以减少内存使用量吗?谢谢。
x1.x2.x3.r1//典型的字符串长度大于50。
x1.x2.x3.r2
x1.x2.x3.r3
x1.x2.x4.r1
...
我自己有这样的计划:将一个字符串分成两部分:“x1.x2.x3.r1”=“x1.x2.x3”。 ( A ) + "r1"(B), A 可以用在其他字符串中。而比较名字的时候需要比较两部分。我不确定它是否可行。
最佳答案
如何将它们存储在树中?
每个节点代表字符串的下一部分,用点分隔。
然后,在比较时,您比较节点的祖先。
关于string - 如何用更少的内存保存多个相似(分层格式)的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063616/