後者の場合、
if( !c.empty() )
for( size_t n=0; n<c.size()-1; ++n)
で何か問題あるのか?