我正在编写一个基本的文本编辑器,它实际上是一个编辑控制框,我想在其中为我的主程序编写代码、数值和表达式。
我目前正在这样做的方式是将字符串输入到编辑控件中。在编辑控件中,我有一个类可以将字符串分解为“字形”,如单词、数字、换行符、制表符、格式标记等。例如,字形包含一个表示文字的字符串和一个短整数,表示尾随空格的数量。字形还包含绘制文本和计算换行时所需的信息。
例如,文本行“My name is Karl”将等于一个字形链接列表,如下所示:NewLineGlyph → WordGlyph (“My”, 1 个空格) → WordGlyph (“name”, 1 个空格) → WordGlyph(“is”, 1空白)→ WordGlyph(“Karl”,0 个空白)→ NULL。
因此,不是将字符串作为连续的字符块(或 WCHAR)存储在内存中,而是存储在小块中,并可能有大量的小分配和释放。
我的问题是;这样做时我应该关心堆碎片吗?您对提高效率有什么建议吗?还是完全不同的方式?:)
PS。我在 Win7 上使用 C++ 工作。