This preview shows page 1. Sign up to view the full content.
Unformatted text preview: Engineering 101 Quote of the Day
The High Life
From building cars, planes, and trains To building drugs, plugs, and cranes, We exist on the fundamentals through struggle and pain, Doing math and science to help the world have less strain. With our video games and quirky jokes, All of us unite in someway until we croak. Our actions, though they cause some to jeer, Allow us to proudly say, "I am an engineer!" Vectors and Vectors of Vectors, oh my! my!
 Tejash Patel, ENGR 101 (W'09) Making Lists of Things
Often times we want to make lists of things that are not characters For these we can use another class called the vector class #include <vector> Vectors
Vectors can be used to make lists of anything: int, double, char, string, .... To declare a vector you have to specify the type you are making a list of. vector <type> identifier; Vectors
For example: Vectors
Typically we also want to tell how long this list will be: vector <int> intlist(5); vector <double> doublelist(10); vector <string> stringlist(25); vector <int> intlist; vector <double> doublelist; vector <string> stringlist; 1 Vectors
We can also specify what to initialize the values in the list to: vector <int> intlist(5, 1); vector <double> doublelist(10, 0.0); vector <string> stringlist(25, "none"); Vectors
Individual parts of the list can be accessed using array semantics vector <int> intlist(5, 1); intlist[ 1 ] = 10; Vectors
Individual parts of the list can be accessed using array semantics vector <int> intlist(5, 1); intlist[ 1 ] = 10; for(i=2; i < 5; i = i + 1) intlist[ i ] = intlist[ i1 ] + 1; i Vectors
Alternately we can use the safer at( ) method to index the list vector <int> intlist(5, 1); intlist.at(1) = 10; for(i=2; i < 5; i = i + 1) intlist.at( i ) = intlist. at( i1 ) + 1; i Exercise
What will be output? 1 2 4 8 16 32 2 32 16 8 4 2 3 2 2 2 2 2 4 2 2 2 4 2 What will be output? 1 1 2 4 8 16 2 16 8 4 2 1 3 2 4 8 16 32 4 32 16 8 4 2 Exercise ; ; 2 Vectors
Other methods also exist to manipulate vectors: v.back( ) v.front( ) v.empty( ) v.clear( ) refers to the last element refers to the first element true if the vector is empty empties the vector Vectors
Other methods also exist to manipulate vectors: v.pop_back( ) v.push_back(e) v.resize(newsize) v.resize(newsize,e) removes the last element appends another element changes size of the vector and puts e into any new elements What is the purpose of this code?
1 Print out each word in a line separately 3 Remove all the spaces in a line 2 Read successive lines into a vector of strings 24 Read each word in a line into a vector of strings Which of the functions will successfully return the string containing the letters in the incoming string, but in reverse order? reverse("hello")=="olleh" 1. 2. 3. Vectors
Vectors can also be used to store lists of lists vector< vector <int> > table; Vectors of Vectors
If you think of vector <int> as a row of integers then you can think of vector <vector <int> > as a series of rows vector <vector <int> > table; table[0] = 1 2 3 5 7 Note this is table[1] = 4 2 7 3 0 just a schematic table[2] = 5 5 1 2 6
you can't actually assign arrays this way Don't forget the space here! 3 Vectors of Vectors
To access an individual number you need to designate which item in the row vector <vector <int> > table; table[0] = 1 table[1] = 4 2 2 3 7 5 3 7 0 Vectors of Vectors
Uses of Vectors of Vectors:
Tables of data double Ex, Ey, Ez; double Mx, My, Mz; double Cx, Cy, Cz; //earth data //moon data //comet data table[2] = 5 5 1 table[0][2] == 3 2 6 table[2][3] == 2 Vectors of Vectors
Using of Vectors of Vectors:
Tables of data vector <double> Earth(3, 0.0); vector <double> Moon(3, 0.0); vector <double> Comet(3, 0.0); //earth data //moon data //comet data Vectors of Vectors
Using of Vectors of Vectors:
Tables of data vector <vector <double> > PlanetData; Vectors of Vectors
Creating of Vectors of Vectors:
Assigning data to the elements vector <vector <double> > PlanetData(3); vector <double> row(3, 0.0); for(int i=0; i < 3; i=i+1){ PlanetData[i] = row; } Vectors of Vectors
Creating of Vectors of Vectors:
An easier way of assigning data to the elements vector <vector <double> > PlanetData(3); for(int i=0; i < 3; i=i+1){ PlanetData[i] .assign(3, 0.0); } 4 Vectors of Vectors
Creating of Vectors of Vectors:
The easiest way of assigning data to the elements vector <double> row(3, 0.0); vector <vector <double> > PlanetData(3, row); Vectors of Vectors
Accessing of Vectors of Vectors:
Printing the data vector <double> row(3, 0.0); vector <vector <double> > PlanetData(3, row); int i, j; for(i=0; i < PlanetData.size(); i=i+1){ for(j=0; j < PlanetData[ i ].size(); j=j+1) cout << PlanetData[ i ][ j ] << " "; cout << endl; } What will the contents of table be after the for loops execute? Vectors of Vectors
Accessing of Vectors of Vectors:
Printing the data vector <double> row(3, 0.0); vector <vector <double> > PlanetData(3, row); int i, j; for(i=0; i < PlanetData.size(); i=i+1){ for(j=0; j < PlanetData.at( i ).size(); j=j+1) PlanetData.at( ).size(); cout << PlanetData.at( i ).at( j ) << " "; PlanetData.at( cout << endl; } 1
0 0 0 0 1 2 0 2 4 2
0 1 2 0 2 4 0 3 6 3
1 2 3 2 4 6 3 6 9 4
1 1 2 1 2 4 1 3 6 Next Lecture
Sorting and Recursion 5 ...
View
Full
Document
This note was uploaded on 05/04/2010 for the course ENGIN 101 taught by Professor Jeffringenberg during the Spring '07 term at University of Michigan.
 Spring '07
 JeffRingenberg
 Strain

Click to edit the document details