我有这两个陈述。有什么区别
string(sample_string).erase(i,j)
和
sample_string.erase(i,j)
?
答案 0 :(得分:1)
sample_string.erase(i,j)
在erase
对象上调用sample_string
方法(假设这是实现此方法的类的实例)。
string(sample_string).erase(i,j)
创建string
类的临时实例,使用string
对象调用sample_string
构造函数来初始化字符串,然后调用{该临时对象的{1}}方法。
答案 1 :(得分:1)
我认为simple_string的类型是std :: string。代码
string(sample_string).erase(i, j)
看起来无法正常工作,因为string(sample_string)返回一个temp obj,然后在临时字符串对象上调用erase方法。与sample_string无关。
答案 2 :(得分:0)
第一个,string(sample_string).erase(i,j)
创建一个临时字符串,并从该临时字符串中删除。
第二个从字符串对象sample_string
中删除。