【问题标题】:Can range based for loop work for assignment? [duplicate]基于范围的for循环可以用于分配吗? [复制]
【发布时间】:2016-09-19 21:02:19
【问题描述】:

是否可以使用/实现一个范围基本循环来为数组分配数字?

我想要什么:

for (auto i : X){
    i = 1;
} //I want this to fill the array with 1.

【问题讨论】:

  • 下一个问题:有没有一首关于投反对票的好歌?
  • 是的,它叫做“Google 'range for loop assign c++'”。需要明确的是:由于缺乏研究努力而被否决。
  • 但是我做了这门课。它不是 stl 向量。所以我跳过那些关于 stl 向量的结果。现在我看到向量问题使用了 auto & i 循环
  • 似乎是个坏主意,除非您不向我们展示重要的东西,否则答案都是一样的。
  • @rxu 那下次让你的问题更清楚,告诉我们你做了什么。但是,如果它是可迭代的,那么引用应该可以正常工作。

标签: c++ for-loop range


【解决方案1】:

是否可以使用/实现一个范围基本循环来为数组分配数字?

是的,使用参考:

for (auto & i : X){
       // ^
    i = 1;
}

【讨论】:

  • 谢谢。没有性能损失?
  • @rxu 性能损失对比什么?
  • @rxu 有性能优势。您的原始代码会复制每个元素,这不会复制。
  • 与使用原始指针访问连续内存中的数组。
  • @rxu 不,引用与原始指针一样高效。没有区别。
猜你喜欢
  • 2012-08-25
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 2016-10-15
  • 2014-12-06
  • 2018-12-28
  • 2014-01-12
相关资源
最近更新 更多