【问题标题】:Recommended code style for long cpp variable [closed]长 cpp 变量的推荐代码样式 [关闭]
【发布时间】:2021-10-19 14:49:34
【问题描述】:

std::unordered_map<std::string, std::unordered_map<std::string, float>> variable_name;

一行太长了。那么,推荐的代码风格是什么。我现在使用以下内容。

std::unordered_map<std::string,
  std::unordered_map<std::string, float>> variabl_name;

【问题讨论】:

  • 我只会把它放在 1 行,即使它超过了你所拥有的字符限制。话虽如此,我认为这是一个固执己见的问题,因此偏离主题。
  • 使用标准; ... unordered_map> variable_name;
  • @MarkLavin:如果您无论如何都要使用using 语句,请将其设为地图类型本身的别名。应该避免using namespace std;
  • 将其分解为多个 using 语句,您可以为每个部分赋予有意义的名称。
  • @MarkLavin 见here...

标签: c++ coding-style


【解决方案1】:

拥有好的变量名比缩短代码行的长度更重要。为了后者而妥协前者不是一个好主意。

因此,如果我们不想触及变量的名称,那么我们就只剩下类型的名称了。无论如何,这首先是代码行很长的主要原因。

类型别名是一个很好的选择。您可以使用它们来分解事物,如下所示:

using float_map = std::unordered_map<std::string, float>; 
using my_map = std::unordered_map<std::string, float_map>; 

my_map variable_name;

显然,您应该将 my_map 替换为描述代码中类型用途的名称。

此外,如果您多次使用相同的类型,则别名只能在包含所有用途的最内层范围内定义一次:

namespace my_project {

using float_map = std::unordered_map<std::string, float>; 
using my_map = std::unordered_map<std::string, float_map>; 

void some_function() {
  my_map variable_name;

  // ...
}

class SomeClass {
  my_map some_member_;
};

}

【讨论】:

  • 我同意。另外,设置 clang 格式。使用 clang 格式。再也不用担心风格换行问题了。
【解决方案2】:

我个人,如果需要打破,将所有相应的部分保持在同一水平,即在你的情况下:

std::unordered_map<
    std::string, std::unordered_map<std::string, float>
> variable_name;

// or

std::unordered_map<
    std::string,
    std::unordered_map<std::string, float>
> variable_name;

如果还需要打破内部地图,那么同样的模式:

std::unordered_map<
    std::string,
    std::unordered_map<
        std::string, float
    >
> variable_name;

// or

std::unordered_map<
    std::string,
    std::unordered_map<
        std::string,
        float
    >
> variable_name;

当然,最后这些例子只是为了说明,我会尽可能少地中断,并根据需要从外部结构转到内部结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-21
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2010-12-16
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多