c – std :: string :: erase如何从字符串中删除字符?

c – std :: string :: erase如何从字符串中删除字符?,第1张

概述例如,请考虑以下代码. string str = "Alice ate apples"; str.erase(0, 2) 擦除功能实际上是分配新内存并复制“冰吃苹果”还是擦除功能做就地复制? basic_string实现具有擦除抛出异常的迭代器形式是非法的.当你提供超出范围的索引时,甚至只有擦除的索引形式会抛出. 这很重要,因为分配内存是一种潜在的抛出 *** 作.因此,如果擦除不能抛出,那么它也不能分 例如,请考虑以下代码.

string str = "Alice ate apples"; str.erase(0,2)

擦除功能实际上是分配新内存并复制“冰吃苹果”还是擦除功能做就地复制?

解决方法 basic_string实现具有擦除抛出异常的迭代器形式是非法的.当你提供超出范围的索引时,甚至只有擦除的索引形式会抛出.

这很重要,因为分配内存是一种潜在的抛出 *** 作.因此,如果擦除不能抛出,那么它也不能分配.所以它没有.

因此,擦除必须就地进行.

总结

以上是内存溢出为你收集整理的c – std :: string :: erase如何从字符删除字符?全部内容,希望文章能够帮你解决c – std :: string :: erase如何从字符串中删除字符?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存