whenever you see the following sign <<
used to print stuff out, it works because its overloaded; however vector<>
does not have an overload function to able you to do this. what you can do is the following:
1- there is a iterarot
class that allows you to iterate in containers such as vector:
vector<int>::iterator it;
cout << "myvector contains:";
for ( it=myvector.begin() ; it < myvector.end(); it++ )
cout << " " << *it;
cout << endl;
2- if you are writing your class, write an overload function like so:
to iterate
:
std::vector<int>::const_iterator iter= vec.begin();
for(iter; iter != vec.end(); ++iter)
{
cout<<*iter; //This is what step 2 provides for
}
overload func:
ostream& operator<<( ostream& os, const vector<int>&)
{
}
here is how to use vector and iterator:
cout << "vector from initializer list: " << endl;
vector<int> vi1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
cout << "size: " << vi1.size() << endl;
cout << "front: " << vi1.front() << endl;
cout << "back: " << vi1.back() << endl;
// iterator
vector<int>::iterator itbegin = vi1.begin();
vector<int>::iterator itend = vi1.end();
for (auto it = itbegin; it < itend; ++it) {
cout << *it << ' ';
}
cout << endl;
cout << "element at 5: " << vi1[5] << endl;
cout << "element at 5: " << vi1.at(5) << endl;
cout << "range-based for loop:" << endl;
for (int & i : vi1) {
cout << i << ' ';
}
cout << endl;