Never seen before C++ for-loop
===

I was converting a C++ algorithmn to C#.
I came across this FOR-loop:

    for (u = b.size(), v = b.back(); u--; v = p[v]) 
    b[u] = v;

It gives no error in C++, but it does in C# (cannot convert int to bool).
I really can't figure out this for-loop, where is the condition?

Can someone please explain?





*PS. Just to check, to adapt a VECTOR to a LIST does
    b.back()
correspond to
    b[b.Count-1]
?*
