gpt4 book ai didi

C++ 是否 std::string::erase 重新分配和...?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:15 28 4
gpt4 key购买 nike

第一个问题,std::string::erase 是否重新分配?

第二个问题,有没有更快的方法可以从 std::string 中快速删除某些单词或短语?字符串的长度通常在300K左右。

最佳答案

未定义 string::erase 是否会触发重新分配。您可以通过将 string::capacity 与调用该方法之前和之后发生的情况进行比较来进行检查。删除部分字符串总是会触发删除部分之后的所有字符的拷贝,因为字符串的存储要求是连续的。

对于大型字符串的操作,您可能需要考虑改用绳索或 std::list。根据您的操作,结果可能会更快。

关于C++ 是否 std::string::erase 重新分配和...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974591/

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