为什么STL“空”成员函数不称为“isEmpty”?

问题描述 投票:2回答:1

请检查std::vectorcplusplus.com

它说它有一个empty()成员函数:

empty
Test whether vector is empty (public member function )
http://www.cplusplus.com/reference/vector/vector/empty/
Signature : bool empty() const;

对我来说,空的意思应该是从这个容器中删除所有元素。但是,它是一个测试函数,用于检查容器是否为空。我检查了所有其他容器,并且所有使用方式都是空的。

为什么stl不使用isEmpty()代替?

c++ stl naming-conventions naming
1个回答
1
投票

为了与C ++标准库的命名约定保持一致,我实际上已经将你所指的成员函数化为is_empty()而不是isEmpty()。也就是说,遵循snake case命名约定而不是camel case。我们可以在其他成员函数中看到这个约定,例如push_back()pop_back()


请注意,有一个名为clear()的成员函数可以清空容器。也许省略动词并因此需要较少打字的原因是这种名称的分离,用于查询容器是否为空(即empty())和清空容器(即clear())。

否则,如果改为使用单词“empty”,对于查询和更新,动词可能已经成为查询成员函数名称的一部分,因为两个成员函数都没有参数,因此重载不会没有可能。然后,成员函数可能被称为empty()is_empty(),用于清空容器并分别查询它是否为空。

© www.soinside.com 2019 - 2024. All rights reserved.