#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
vector<int> vect;
// insert at the end of the array
for(unsigned long nCount=0; nCount < 6; nCount++)
vect.push_back(10 - nCount);
vect
{ 10, 9, 8, 7, 6, 5 }
vector<int> vec2{1,4,3,2,0}
vector vec3{"abc","def","ghi"};
vec3[1]
"def"
for(unsigned long nIndex=0; nIndex < vect.size(); nIndex++)
cout << vect[nIndex] << " ";
cout << endl;
10 9 8 7 6 5
vect.at(12)
Standard Exception: vector::_M_range_check: __n (which is 12) >= this->size() (which is 6)
vect[12]
0
std::vector<int>::iterator it1 = vect.begin();
*it1
10
it1++;
*it1
9
auto it3 = vect.end();
--it3;
*it3
5
// don't do this!
*vect.end()
1851088743
std::vector <int> myvector;
// set some values (from 1 to 10)
for(int i = 1; i <= 10; i++) myvector.push_back(i);
// erase the 7th element
myvector.erase(myvector.begin() + 6);
// erase the first 3 elements:
myvector.erase(myvector.begin(), myvector.begin() + 3);
std::cout << "myvector contains:";
for(unsigned i = 0; i < myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
myvector contains: 4 5 6 8 9 10
std::vector <int> vec(3, 100);
vec
{ 100, 100, 100 }
// std::vector <int>::iterator it;
auto it = vec.begin();
it = vec.insert(it, 200);
vec
{ 200, 100, 100, 100 }
vec.insert(it, 2, 300);
vec
{ 300, 300, 200, 100, 100, 100 }
// "it" no longer valid, get a new one:
it = vec.begin();
std::vector <int> othervec(2, 400);
vec.insert(it + 2, othervec.begin(), othervec.end());
vec
{ 300, 300, 400, 400, 200, 100, 100, 100 }
int myarray[] = { 501,502,503 };
vec.insert(vec.begin(), myarray, myarray + 3);
std::cout << " vec contains:";
for(it = vec.begin(); it < vec.end(); it++)
std::cout << ' ' << *it;
vec contains: 501 502 503 300 300 400 400 200 100 100 100
std::vector <int> myvector;
// set some initial content:
for(int i = 1; i < 10; i++) myvector.push_back(i);
myvector
{ 1, 2, 3, 4, 5, 6, 7, 8, 9 }
myvector.resize(5);
myvector
{ 1, 2, 3, 4, 5 }
myvector.resize(8, 100);
myvector
{ 1, 2, 3, 4, 5, 100, 100, 100 }
myvector.resize(12);
std::cout << "myvector contains:";
for(int i = 0; i<myvector.size(); i++)
std::cout << ' ' << myvector[i];
std::cout << '\n';
myvector contains: 1 2 3 4 5 100 100 100 0 0 0 0
// Vector of ints
vector<int> v;
for (int i = 0; i < 10; i++)
v.push_back(i);
for(int i = 0;i < 10; i++)
cout << "v[" << i << "]=" << v[i] << " ";
cout << endl;
v[0]=0 v[1]=1 v[2]=2 v[3]=3 v[4]=4 v[5]=5 v[6]=6 v[7]=7 v[8]=8 v[9]=9
// randomly reorder all the elements of the container v
random_shuffle(v.begin(), v.end());
for(int i = 0;i < 10; i++)
cout << "v[" << i << "]=" << v[i] << " ";
cout << endl;
v[0]=4 v[1]=3 v[2]=7 v[3]=5 v[4]=9 v[5]=0 v[6]=6 v[7]=1 v[8]=2 v[9]=8
// returns iterator positioned at the value 7 if exists between begin() and end()
auto index = find(v.begin(), v.end(), 7);
cout << "Location of 7 in new scrambled vector is " << std::distance(v.begin(), index) << endl;
Location of 7 in new scrambled vector is 2
bool oddNum(int i)
{
return (i % 2 == 1);
// return true;
// else
// return false;
}// End of oddNum
// returns the count of numbers that are odd between begin() and end()
int n = count_if(v.begin(), v.end(), oddNum);
cout << "There are " << n << " odd numbers." << endl;
There are 5 odd numbers.
// sorting
vector<int> v3{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0 };
sort(v3.begin(), v3.end());
v3
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
sort(v.begin(), v.end());
v
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }