251. Flatten 2D Vector

Implement an iterator to flatten a 2d vector.

For example,
Given 2d vector =


By calling next repeatedly until hasNext returns false, the order of elements returned by next should be: [1,2,3,4,5,6].

Follow up:
As an added challenge, try to code it using only iterators in C++ or iterators in Java.