gpt4 book ai didi

c++ - 为什么不带参数调用 basic_string::substr?

转载 作者:太空狗 更新时间:2023-10-29 20:25:16 25 4
gpt4 key购买 nike

如果 s1s2 是字符串,那么(据我所知)

s1 = s2.substr();

意思完全一样

s1 = s2;

为什么有人想在不带任何参数的情况下调用 substr()

编辑:表达相同问题的另一种方式:

为什么标准这样定义substr:

basic_string substr( size_type pos = 0,
size_type count = npos ) const;

而不是这样:

basic_string substr( size_type pos,
size_type count = npos ) const;

最佳答案

答案是,只是为了见鬼。
正如您正确注意到的那样,仅创建拷贝没有优势(有时速度劣势)。

推测为什么第一个参数是默认的,我猜这是为了强制取消共享古老的 COW 字符串(当前标准不允许)。或者有人在添加默认参数时过于热心。它发生在我们最好的人身上。

关于c++ - 为什么不带参数调用 basic_string::substr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24431336/

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