c++ - 声明后的c ++字符串clear()
问题描述
我是初学者学习弦乐。
#include<iostream>
#include<string>
using namespace std;
int main(){
string st1, st2;
st1.clear();
..
我在几个例子中看到了在字符串声明之后使用 clear() 。有必要吗?这是否提供任何好处或只是一个好习惯,声明后默认情况下字符串不是 null 吗?谢谢你。
解决方案
默认构造的字符串大小为零且未指定容量,因此从语义上讲,调用 没有意义clear()
。字符串是空的,不能再空了。
但是,不能保证不会clear()
改变字符串的容量,因此某些实现可能会在调用clear()
空字符串时释放一些内存。cppreference 声称“现有的实现不会改变容量”,所以即使是这个调用的理由clear()
也可能是无效的。
简而言之,不要效仿这些不好的例子。
推荐阅读
- javascript - Sequelize JS - 在连接中选择 On 子句
- objective-c - 如何在可可中获取鼠标单击事件元素
- apache-kafka - 如何在 Flume 中解压来自 Kafka 源的 gzip 消息
- azure-devops - 如何限制链接到按分支规范构建的工作
- java - 当我尝试进行其他活动时,我的应用程序崩溃了
- vhdl - VHDL中有限状态机的连续测试?
- encryption - BLE 绑定是否加密所有通信?
- python - 为什么我会收到此错误:TypeError: tuple indices must be integers or slices, not str
- javascript - 节点 8 与 11 时区不同
- javascript - 操作 iframe 的 ID 元素