在C++中,允许迭代容器的每个元素(例如,让我们使用一个向量),就像在
vector<CustomObject> container;
//push back some objects in container
for(CustomObject obj : container){
//process obj
}
Run Code Online (Sandbox Code Playgroud)
我有一个关于"for"行为的问题:是否将容器复制用于for或通过引用访问?
小智 8
容器未被复制.它是通过引用访问的.但是,CustomObject正在为每个循环复制.编译器可以优化掉副本,但这不能保证.
要防止CustomObject在此示例中进行复制,请执行以下操作:for(CustomObject& obj : container)