It is possible if the two declared variables are of the same type. Remember that you can only have two semi-colons in a for statement.
for(int I(0), j(10); I < 10 || j > 0; ++I, --j)
Note that I use OR and not a comma operator in the condition.
If the types are different, like if you are using STL iterators, you can always declare them beforehand. What variables are checked and what variable is "incremented" is not restricted to the declared variable inside.
1 2 3 4 5
std::list<int> contain1(4,5);
std::vector<int> contain2(10,10);
auto iter1(contain1.begin());
auto iter2(contain2.begin());
for(; iter1 != contain1.end() && iter2 != contain2.end(); ++iter1, ++iter2)
i believe all of that is correct, except for the n<10, e>0. you want to use the && operator like you would in a normal condition. i think you said you were writing python so its the c++ version of the and operator