gpt4 book ai didi

c++ - 附加标准字符串时出现 bad_alloc 异常

转载 作者:行者123 更新时间:2023-11-27 22:42:08 25 4
gpt4 key购买 nike

考虑:

int main(){    
string str("aaaaaaaaaa");
for (int i = 0; i < 1000; i++)
{
str += str.data();
}
}

对于较大的i,会发生“bac_alloc”错误。有什么办法可以防止这种情况发生吗?如果没有,还有什么替代方法(添加一个长字符串)?

最佳答案

您的代码 str += str.data() 一次又一次地将字符串加倍,共 1000 次。这将以 10*2^1000 长度的字符串结束,这对于内存来说太长了。您可能想将 "aaaaaaaaa" 连接一千次,而不是将字符串加倍 1000 次:

string str;
for (int i = 0; i < 1000; i++) {
str += "aaaaaaaaaaa";
}

关于c++ - 附加标准字符串时出现 bad_alloc 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920560/

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