c++ - 我们应该避免变量的复数名称吗?

标签 c++ stl naming-conventions

<分区>

有时,当变量是对象集合(如数组或列表)时,很容易将其命名为复数。这样可以吗,还是我们应该始终坚持变量的单数名称?例如,一组汽车可以称为“汽车”或“汽车”

考虑另一个例子:

    vector< string > students; // it is named as students rather singular student

    students.push_back("Mark");
    students.push_back("Steve");

     // lets say we are using index to retrieve it, it does look 
     // a little clumsy

    string current_student = students[0]; 

或者,我们可以将容器对象定义为单数,如下所示,但它现在看起来像是代表单个对象而不是学生集合吗?不过,它确实使使用索引看起来更好。

    vector< string > student;

我个人喜欢的另一个选项是这样的:

   vector< string > student_list;

我将“_list”(或者可以是驼峰符号)附加到集合变量名称(不管它是 vector 、列表还是 map )。这样,对象的名称是单数的,但它将自己标识为对象的集合。

哪个是更好的方式或约定,并且以上内容更具可读性?是否应该绝对避免使用复数名称?

还要考虑另一个更简单的例子,假设我们正在进行一项实验,我们以不同的时间间隔记录一天的温度 100 次,因此我们:

     float temperatures[100]; // or temperature[100]? or temperature_list[100]?

或者甚至可能不同:

    float temperature_data[100]?

最佳答案

复数很好——事实上,我会说 expected - 当名称指的是项目的集合(即:集合、列表、 vector 、数组、 ETC)。像 temperature_data 这样的名称在指的是单个项目还是一组时可能会产生歧义。另一方面,temperatures 显然指的不止一个。

关于c++ - 我们应该避免变量的复数名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663880/

相关文章:

c++ - 代码在 CodeBlocks 中工作,但在 linux 中编译时出错

c++ - Oracle 的 Pro*C 从多线程访问

c++ - 判断 C++11 unordered_set 中是否发生碰撞

c++ - STL MAP 应该使用 find() 或 [n] 标识符在 map 中查找元素?

c++ - 如何从成对的初始化列表构造对象?

C++:访问可能不存在的 const vector 成员 - try/catch 或 if (count != 0)?

dll - MSVC dll、静态库和导入库的正确命名约定是什么

c++ - 我如何遍历 QListWidget 项目并使用每个项目?

JavaScript 原型(prototype)命名标准

c - 当前命名变量和函数的方案是什么?