std::ios is a typedef for std::basic_ios<char> which is a class that is publicly derived from std::ios_base, which is a class that has a public static member constant called "left"

You could have written std::cout << std::setiosflags(std::ios_base::left); for the same effect, or just std::cout << std::left; (there is a slight difference in that setiosflags resets all flags, while std::left only affects the adjustment flags)

As for the return type, it's just low-level machinery behind the I/O manipulators: those manipulators that take arguments (like setw or this setiosflags) are functions that return objects of unspecified type that have operator<< or operator>> overloads to apply the changes to the stream.

Simply put, yes. To be precise, it changes the field with value in the stream object, and most I/O operators change it back to zero. The full list of width-resetting operations is here: http://en.cppreference.com/w/cpp/io/manip/setw

A bitmask is a pattern of bits. A bitmask can be used to set, check or clear a bit pattern depending on which bitwise manipulation is used. The smallest representation we can manipulate that can be used to indicate true or false (1 or 0) is a bit, so a bit may be referred to as a flag.

The following program checks to see which bits are set in an unsigned int. It's pretty basic and I would encourage you to check out the bitwise operators and play around with this before you ask further questions.