【问题标题】:What does the following code do? [closed]下面的代码有什么作用? [关闭]
【发布时间】:2013-07-22 09:39:15
【问题描述】:

我想知道下面的代码是做什么的:

for (auto x:m) std::cout << x << " ";

我已经知道auto 是一种让编译器决定变量类型的方法,但我不知道:m 做了什么。

【问题讨论】:

标签: c++


【解决方案1】:

这是一个基于 C++11 范围的 for 循环语法,此处描述:http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html

这里的m 应该是一个容器,比如std::vector。该代码将迭代容器并将每个元素(在循环内以x 访问)放入std::cout 流中。元素将用空格分隔。

【讨论】:

  • 它也适用于 c++10 吗?
  • 你是说C++03?不,它没有。
【解决方案2】:

m 是任何遵循范围概念的类型(即Container concept)。

循环遍历m 的所有元素,其中x 表示当前迭代的值。

【讨论】:

  • m 也可以是数组或用户定义的类型。它不必完全满足容器概念。
  • @juanchopanza 我没说m 是一个容器。
猜你喜欢
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多