Well, there's two ways to iterate through the items (of unknown quantity) in a vector.
1) You can get the number items with the .size() member func, followed by accessing elements using array notation [] and an index in the range [0..size-1]
2) You can use an iterator in a for loop.
I used #2.
1) I just made a struct to hold the name and mark
2) I then typedef'd a vector to hold these structs
3) I then typedef'd a second vector to hold these vectors
4) I made a function which would iterate through and print the elements in #2
5) I then made a function that would iterate through each of the vectors in #3, passing each one to #4
Here's the data types and function prototypes I used.
typedef struct
{
std::string name;
std::string mark;
} contentItem;
typedef vector<contentItem> vecContentItem;
typedef vecContentItem::iterator vecContentItemIter;
typedef vector<vecContentItem> vecContainer;
typedef vecContainer::iterator vecContainerIter;
void printContentVec(vecContentItem theList);
void printContainer(vecContainer theContainer);