C++中string类的size和length到底有没有区别?

C++标准库中的string中两者的源代码如下:

   _NODISCARD size_type length() const noexcept { // return length of sequence
        return _Get_data()._Mysize;
    }

    _NODISCARD size_type size() const noexcept { // return length of sequence
        return _Get_data()._Mysize;
    }     

由此可以看出,length()与size()没有区别,都是返回string对象中元素数量,即返回std::distance(begin(),end()) 。length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入STL之后,为了兼容又加入了size,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。

具体可参考:https://en.cppreference.com/w/cpp/string/basic_string/size

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值