gpt4 book ai didi

c++ - Lint 更喜欢 std :string rather than clear() 上的 erase() 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:56 24 4
gpt4 key购买 nike

使用 Lint,它反复反对在 std 字符串上使用 clear,并希望建议使用不带参数的删除方法。

查看文档并执行我想要的操作,即将字符串的大小调整为零个元素,以便该字符串为空且没有任何元素。此时我不想删除字符串,只需从中删除所有成员即可。

我的问题是这两种方法有什么区别,有谁知道我应该使用 erase 而不是 clear 方法的原因吗?

最佳答案

我看不出任何原因。恰恰相反:我实际上不得不查看引用以查看 erase() 是否可以在没有参数的情况下调用。 erase() 用于从字符串中删除一些指定的字符clear() 用于删除字符串的全部内容(但不包括其容量)。

一般的编程规则是“写下你的意思”。如果要清除整个字符串,请使用函数:clear()

此外,在一般情况下,erase() 有更多工作要做——它必须检查索引是否在范围内,如果不在范围内则抛出异常。 clear() 保证不会抛出。聪明的优化者可能会使它们完全相同,但我会考虑使用 erase() 而不是 clear() “过早的”悲观化。

关于c++ - Lint 更喜欢 std :string rather than clear() 上的 erase() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833113/

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