| vectors/vector-1-modern.cc - A variant of the simple vector example - non-executable. | Lecture 3 - slide 14 : 27 Program 2 |
// Similar to program above, with various modernizations.
// Compiles, but causes an exception to be thrown at run-time.
#include <iostream>
#include <string>
#include <vector>
// Using declarations:
using std::string;
using std::vector;
using std::cout; using std::endl;
int main(){
// Vector construction:
vector<double> a{}; // An empty vector of element type double
double sum;
// Adding elements to the back end:
for (vector<double>::size_type i = 1; i <= 5; i++)
a.push_back(static_cast<double>(i));
// Mutation of a NON-EXISTNG ELEMENT: Range error caught here (at run-time) with use of at instead of operator[]
a.at(5) = 2.2;
// Sum up the elements - with iterators - auto:
sum = 0.0;
for (auto iter = a.begin();
iter != a.end();
iter++){
sum += *iter;
}
cout << "Sum = " << sum << endl;
// Sum up the elements - with range for:
sum = 0.0;
for (auto el: a)
sum += el;
cout << "Sum = " << sum << endl;
}