There may be some disadvantages, in particular all rows may not be the same length.
But one advantage is that the whole thing can be printed out like this:
1 2
for (string & s : array)
cout << s << endl;
The only reason I suggested it is that a string is in effect an array of characters (with additional features which can be ignored). So that gives the x-dimension of the array. Each element of the vector would give the y-dimension.
You can still access individual elements by row and column, for example like this, print out the array one character at a time.
1 2 3 4 5 6 7
for (int row=0; row <array.size(); row++)
{
for (int col=0; col<array[row].size(); col++)
cout << array[row][col];
cout << endl;
}