The difference between a vector and a map or set is that vector is indexed by an integer value (like an array). maps and sets have "keys". That key can be a string or some other object type that uniquelly identifies the entry.
There is also a difference in how vectors and sets/maps are stored. vectors are stored as a dynamically allocated array, hence the requirement for an integer index. sets and maps are generally implemented as binary (red/black) trees which allows efficient "finding" of a node by its key.
A vector stores a contiguous sequence of elements. A map stores a unique set of keys which are associated with one value each. There are times where you would use a std::map<int, blah> instead of a std::vector<blah>.