【发布时间】:2017-06-28 01:35:51
【问题描述】:
我有一个返回容器的函数。我们就叫它“Container”吧。
Container GenerateRandomContainer() { ... }
此函数将生成一个容器,其中包含每次调用都不同的随机元素。
当我像这样使用 for each 循环遍历这个容器时:
for(Element e : GenerateRandomContainer()) { ... }
它会在每次迭代时生成一个新的Container,还是在进入 for each 循环时只生成一个?
【问题讨论】:
-
GenerateRandomContainer()只会被调用一次。另请参阅en.cppreference.com/w/cpp/language/range-for,它准确解释了 range-for 构造的执行方式。 -
我去看看。
-
请注意,这会将每个元素复制到
e;使用Element &e(或auto& e)来引用容器中的每个元素 -
这是一个很好的提示,谢谢!
标签: c++ c++11 foreach containers ranged-loops