I need some help with C++ iterator and range-based list traversing and updating. I have the following code in C++ 11. The code below doesn't seem to modify the lists in place.

```
auto LIST1 = std::list<Myobject>;
auto LIST2 = std::list<Myobject>;
//Filled lists with Myobjects
// Now I need to swap some values in LIST1 with values in LIST2 if some condition is satisfied
std::list<MyObject>::iterator iter2 = LIST2.begin();
for (auto &el : LIST1){
    if (iter2 == LIST2.end()) {break;}
        if (el->getSomeProperty() <= 0){
            if (iter2->getSomeProperty() >= minValue){
                auto temp = el;
                el = *iter2;
                *iter2 = temp;
            }
            ++iter2; // The iterator moves forward;
        }
}

```

Can someone help me?
Thanks!
P.S: I am a newbie at StackOverflow so be gentle is I wasn't clear.