(a) *iter++;
is legal. The expression moves iter
to point to the next element and returns the value of the original element.
(b) (*iter)++
is not legal. The expression means increasing value of the element, but the value is a string
and string
does not have ++
operator.
(c) *iter.empty()
is not legal. Because iter
is an iterator and has no member named empty
.
(d) iter->empty()
is legal. The expression means check if the string pointed by iter
is empty.
(e) ++*iter
is not legal. The expression means increasing value of the element, but the value is a string
and string
does not have ++
operator.
(f) iter++->empty()
is legal. The expression means move iter
to point to the next element and check if that string
is empty.