在C ++中,可以像在
中那样遍历容器的每个元素(例如,以向量为例)。-wbkit-paged-x
我对“ for”行为有疑问: 是将容器复制以用于for还是通过引用访问?
答案 0 :(得分:8)
未复制容器。正在通过引用对其进行访问。但是,CustomObject
正在为每个循环复制。编译器可以优化副本,但这不能保证。
在此示例中,为防止复制CustomObject
,您可以这样做:for(CustomObject& obj : container)
答案 1 :(得分:0)
未复制容器。但是,将复制其中的每个元素。您可以通过使用&号指定它来更改它。那就是:
for (CustomObject &obj : container) {
// Process obj
}
通常,处理大型容器时最好的决定。