C++减少字符串内存使用

标签 c++ string memory

我需要存储很多长度固定的短字符串。 我注意到一个字符串对象分配 8 个字节,即使它包含一些字符,这让我遇到了内存问题。

有没有办法告诉 C++ 它应该只为字符串分配 n(常量)字节?还是我必须使用字符数组?

最佳答案

由于字符串的大小不变,您可能需要分配一个二维数组(每一行都是一个字符串)。在初始化时分配一次数组。这是最紧凑的形式。

如果字符串的数量未知,请考虑使用字符数组的std::vector。我建议在创建 vector 时保留较大的大小,以减少数量或重新分配。

此外,问问自己在程序运行期间是否需要将字符串存储在内存中。您会访问(搜索)它们吗?数据可以放在文件或数据库中吗?

关于C++减少字符串内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243018/

相关文章:

c++ - WM_HOTKEY 没有捕捉到

c++ - 在 C 中清洁屏幕

ruby-on-rails - 从 Ruby/Rails 中的路径字符串中删除最后一个路径目录

c++ - 不使用正则表达式解析 HTTP 请求

python - 找出还有谁在引用,大数据

php - 在模拟器游戏中,mysql中是否存在类似于内存状态的东西?

Java对象的创建和引用

C++,FindFirstFile() 的输出

c++ - 在哪里使用 c++(即 std::string)字符串以及在哪里使用 '\0' 终止的 c 字符串

c - 传递 char[] 作为 c 中的引用