gpt4 book ai didi

c++ - 在 C++ 中将 char 连接到字符串时会发生什么?

转载 作者:行者123 更新时间:2023-11-30 03:57:28 25 4
gpt4 key购买 nike

例如,下面的代码反转了一个字符串,但是当我将每个字符添加到一个字符串中时实际发生了什么?有效率吗?它是每次都创建一个新的 char 数组,还是每次填满时都将大小加倍,还是?:

#include <iostream>
#include <stack>
using namespace std;

int main()
{
string test = "testing";

stack<char> first;

for(int i = 0; test[i]; i++)
{
first.push(test[i]);
}
string reversed;
int i=0;
while(!first.empty())
{
reversed += first.top();
first.pop();
}
cout << test << reversed;
}

最佳答案

当一个字符串被添加到另一个字符串时,在 + 运算符的情况下,结果字符串被移动构造。

字符串 a("你好");a+="早上好";

一个字符串在底层使用了一个char buffer,在构建的时候就设置了默认的大小。你可以使用reserve来改变它。但是在拼接的时候,如果超过了保留的大小,那么这个buffer就不得不被扩展了。

关于c++ - 在 C++ 中将 char 连接到字符串时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27937491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com