我需要存储很多长度固定的短字符串。 我注意到一个字符串对象分配 8 个字节,即使它包含一些字符,这让我遇到了内存问题。
有没有办法告诉 C++ 它应该只为字符串分配 n(常量)字节?还是我必须使用字符数组?
最佳答案
由于字符串的大小不变,您可能需要分配一个二维数组(每一行都是一个字符串)。在初始化时分配一次数组。这是最紧凑的形式。
如果字符串的数量未知,请考虑使用字符数组的std::vector
。我建议在创建 vector 时保留较大的大小,以减少数量或重新分配。
此外,问问自己在程序运行期间是否需要将字符串存储在内存中。您会访问(搜索)它们吗?数据可以放在文件或数据库中吗?
关于C++减少字符串内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243018/