406得票10回答
C++11反向范围for循环

是否存在一种容器适配器,可以反转迭代器的方向,这样我就可以通过range-based for-loop以相反的顺序迭代容器了?使用显式迭代器,我会将其转换为:for (auto i = c.begin(); i != c.end(); ++i) { ... 变成这样:for (auto i =...

113得票8回答
C++11中是否有适用于基于范围的for循环的范围类?

我刚刚写了这个:template <long int T_begin, long int T_end> class range_class { public: class iterator { friend class range_class; publ...

14得票8回答
函数内部使用范围for出现错误

我在C++中使用范围for循环时遇到了一些问题。我正在尝试使用它来显示int数组(int [])上的元素,并且当我在主函数中这样做时,完全可以正常工作,例如: int main(int argc, char const *argv[]) { int v[] = {3, 4, 6, 9,...

13得票2回答
在基于范围的vector循环中获取项索引

C++11引入了基于范围的for循环,它是使用(const)迭代器内部实现的,因此这样写:std::vector<std::string> vec; for(std::string &str : vec) { //... } 基本上等同于更冗长的写法(是的,可以使用aut...

10得票1回答
VC++不再使用基于范围的语法向简单的for循环进行向量化。

在用范围for循环替换我的许多“旧”for循环之前,我在Visual Studio 2013上进行了一些测试:std::vector<int> numbers; for (int i = 0; i < 50; ++i) numbers.push_back(i); int ...

9得票1回答
在range-based for循环中使用shared_ptr指向std::vector

我写了一个C++函数,用于汇集一些数据并返回指向新分配的包含数据的std::vector的std::shared_ptr。类似于这样的内容: std::shared_ptr<std::vector<int>> shared_ptr_to_std_vector_of_i...

8得票1回答
标准库中是否有用于测试范围for循环可用性的概念?

有多种方法可使类型/类在范围for循环中可用。例如,可以在cppreference上找到概述: range-expression会被评估以确定要迭代的序列或范围。 然后,依次对序列中的每个元素进行解引用,并用给定的类型和名称初始化变量。 begin_expr和end_expr定义如下: ...

7得票4回答
如何在for循环表达式中延长临时变量的生命周期?

在使用范围for循环时遇到了悬空引用问题。考虑下面的C++14表达式(完整示例程序如下): for(auto& wheel: Bike().wheels_reference()) wheel.inflate(); 它的输出结果是: Wheel() W...

7得票2回答
如何迭代mdspan?

所以,我决定使用mdspan而不是一个span+元素访问函数。但是 - 人们想要对(md)span做的一个明显的事情是迭代其元素。这适用于spans。 std::vector vec = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; auto sp =...