繁体   English   中英

使用范围库初始化 std::vector

[英]Initializing std::vector with ranges library

我想用一系列连续整数初始化std::vector而不输入所有整数,比如第二行,它不会编译,在这个代码片段中:

  std::vector<int> a{0, 1, 2, 3, 4, 5};
  std::vector<int> b{std::ranges::iota_view(0, 5)};  // ERROR!

当然,我更喜欢:

  std::vector<int> b{0:5};

但这不是在 C++41 标准之前安排的。 任何想法如何在 C++20 中做到这一点?

你正在寻找的是

auto b=std::ranges::to<std::vector>(std::ranges::iota_view(0, 5));

不幸的是,该提案错过了 C++20,仅仅是因为没有时间审查其措辞(在添加了您尝试的构造函数的先前版本被发现不可行之后)。 希望它会在 C++23 周期的早期被合并并实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM