C++ Vectors (of Vectors!) Woo hoo! 2-dimensional matrices!

Why we need them:

2-d vectors allow us to analyze data, keep track of 2-d data sets, and program basic games.

A vector is declared using the following format:
vector<type> name; // for size zero
vector<type> name(size); //for a vector of integer 'size'

A 2-d vector is declared like this:
vector<vector<int> > table(sizeV, sizeV);

Other useful vector commands:
vectorName.pop_back(); // removes the last element of the vector
vectorName.size(); // returns the number of elements of the vector
vectorName.push_back(variable); // adds variable to the end of the vector, i.e. makes the variable bigger!
vectorname.resize(newsize); // changes the vector to be of size newsize
vectorname.resize(newsize, element); // changes the vector to be of size newsize, and fills the new spots with element

Example program that a 2-d vector, and fills it with zeros and ones:

```// example program using vectors of vectors
// this program creates a vectors of vectors (a table)
// and then fills the table with ones or zeros,
// based on a user specified probability```
```#include <iostream>
#include <vector>```
`using namespace std;`
```int main ()
{
cout << endl;
cout << "This program creates a vector of vectors (called a table) " << endl;
cout << "and fills each element with either a zero or one, based on" << endl;
cout << "a user-specified probability." << endl << endl;
cout << "Please input size of list to be input: ";```
`    	int sizeV;`
`    	cin >> sizeV;`
```   	cout << endl;

// now declare vector of appropriate size```
```    	vector<vector<int> > table(sizeV, sizeV);

// ask for probability of having a one in each element```
```    	cout << "Please input the probability of having a one in ";
cout << "each element: ";

double probONE;

cin >> probONE;

cout << endl;```
```	// error checking to weed out those too ignorant to know what a probability is
// using a loop that will continue until the user gets it right!
```
```	while (	(probONE < 0) or (probONE > 1) )
{	cout << "The probability of something must be between zero and one. Please try again.";
cout << endl << endl;

cout << "Please input the probability of having a one in";
cout << "each element: ";

cin >> probONE;
}```
```	// now fill the table with ones and zeros
// I will use nested whiles because we haven't gotten to "for" loops yet

int i = 0;
int j = 0;

while (i < sizeV)
{
j = 0;
while (j < sizeV)
{
if (probONE > static_cast<double>(rand())/RAND_MAX )
{table [i] [j] = 1;}
else
{table [i] [j] = 0;}
j=j+1;
}
i=i+1;
}

// need to output the table to the screen

i = 0; // remember not to redeclare these counters, just zero them out again
j = 0;

while (i < sizeV)
{
j = 0;
while (j < sizeV)
{
cout << table [i] [j] << " ";
j=j+1;
}
cout << endl;
i=i+1;
}

` `