C++:哪个占用更多内存,将单个字符存储为 char 或 string?

标签 c++ string memory char

我正在编写代码,代码的不同部分根据用户输入执行。如果我确定用户只会输入单个字符,那么字符串或字符会占用更多内存吗?一种方式比另一种方式还有其他优势吗?

编辑: 这是我的意思的一个例子:

using namespace std;
char operation;//or string
cout << "enter the operator (+/=):" << endl;
cin >> operation;
if (operation == '+') {
//do something
}
else {
//do something else
}

最佳答案

char 占用一个字节。
std::string 至少需要 sizeof(std::string) 字节,这在现代 PC 上可能是 24 字节。

在您的情况下,节省的内存很可能无关紧要(因为节省的内存非常少,可能是 23 个字节),因此您应该坚持最能描述您的意图。如果您需要单个字符,那么单个 char 就有意义。

关于C++:哪个占用更多内存,将单个字符存储为 char 或 string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334617/

相关文章:

c++ - 如何正确使用_beginthread和endthread

c++ - 在没有 dll 的情况下使用 libcURL 的正确方法是什么?

java - 如何使用 java String.replaceAll(string regex,string replacement) 来得到我想要的?

python - Python 3.x 中整个文本文件的字符串替换?

git - 我需要删除我的 git stash 吗?

c++ - 根据当前日期在 C++/Boost 中表示 ISO 8601 持续时间

c++ - C - 打印 float - 转换为 int 时精度损失

将字符串复制到 char 数组中

c - 需要更多这方面的信息!中止(核心转储)

ios - 发布网点的最佳和最安全的做法是什么?