【问题标题】:Alternative to designated initializers in C++C++ 中指定初始值设定项的替代方案
【发布时间】:2016-05-15 13:15:40
【问题描述】:

下面使用指定初始化器的代码风格属于C语言

 int widths[] = { [0] = 1, [10] = 2, [100] = 3 };

我想知道,有什么办法可以用C++写出这么简单的代码吗?

【问题讨论】:

  • 你是说C99吧?
  • Yves Daoust,是的,我愿意。
  • 使用正确的术语(指定的初始化器)将极大地提高可搜索性。是的,您可以将其转换为 C++,但实际 C++ 编写代码的方式是在其构造函数中创建一个具有适当逻辑的类,而不是使用原始数组。
  • @CodyGray 没有必要创建一个使用数组的类。:) 创建一个使用数组的类只是一个愚蠢的想法。
  • @VladfromMoscow 有些人已经创建了那个类,它被称为std::vector

标签: c++ arrays c++11 declaration c99


【解决方案1】:

在 C++ 中你必须编写

int widths[101] = { 1 };
widths[10]  = 2;
widths[100] = 3;

【讨论】:

  • @PreferenceBean 是的,没有像 C 允许的那样初始化数组的直接方法。
猜你喜欢
  • 2021-03-24
  • 2020-07-20
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多