How you write it is a little unconventional, but should still compile ok. You just have unnecessary parentheses.
for(std::vector<string>:: iterator s = str1.vec.begin(); s != str1.vec.end(); ++s)
I can't really say what the problem is without seeing the whole program.