我的代码有这部分会抛出错误
for(int i=0;i<100;i++)
{
s=s+",";
cout <<"string length is now "<<s.length<<endl;
}
我只是将同一个字符串一次又一次地附加到自身 100 次。 错误是:
第 23 行:错误:获取绑定(bind)函数 std::basic_string、std::allocator>::length() const 的地址。
谁能告诉我我在这里做错了什么?
最佳答案
应该是s.length()
,不是s.length
:
cout <<"string length is now "<< s.length() <<endl;
请注意,std::string::length()
是一个函数,而不是一个变量。
我更喜欢 .size()
因为它与所有其他容器一致。其他容器没有.length()
成员函数;只有 std::string
具有此功能,以及返回相同值的 .size()
。
如果 std::string
有 .size()
,那为什么要抛出异常并使用 .length()
?为什么不始终如一地使用 .size()
?我建议你使用 .size()
而不是 .length()
:
cout <<"string length is now "<< s.size() <<endl;
关于c++ - 字符串操作——将字符串追加到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441728/