我想用一系列连续整数初始化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));
不幸的是,proposal错过了C++ 20仅仅是因为没有时间检查其措辞(在以前的版本中添加了您尝试过的构造函数之后,发现它不可行)。希望它将在C++ 23周期的早期进行合并和实现。
关于c++ - 使用范围库初始化std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61841418/