C++/STL Algorithms Iterator/iterator
Advance the iterator
<source lang="cpp">
/* The following code example is taken from the book
* "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */
- include <iostream>
- include <list>
- include <algorithm>
using namespace std; int main() {
list<int> coll; // insert elements from 1 to 9 for (int i=1; i<=9; ++i) { coll.push_back(i); } list<int>::iterator pos = coll.begin(); // print actual element cout << *pos << endl; // step three elements forward advance (pos, 3); // print actual element cout << *pos << endl; // step one element backward advance (pos, -1); // print actual element cout << *pos << endl;
} /* 1 4 3
*/ </source>
Convert iterator to reverse iterator
<source lang="cpp">
/* The following code example is taken from the book
* "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */
- include <iostream>
- include <vector>
- include <algorithm>
using namespace std; int main() {
vector<int> coll; // insert elements from 1 to 9 for (int i=1; i<=9; ++i) { coll.push_back(i); } // find position of element with value 5 vector<int>::iterator pos; pos = find (coll.begin(), coll.end(), 5); // print value to which iterator pos refers cout << "pos: " << *pos << endl; // convert iterator to reverse iterator rpos vector<int>::reverse_iterator rpos(pos); // print value to which reverse iterator rpos refers cout << "rpos: " << *rpos << endl;
} /* pos: 5 rpos: 4
*/ </source>
Find a value in map by key
<source lang="cpp">
- include <iostream>
- include <map>
using namespace std; int main() {
map<char, int> m; // put pairs into map for(int i=0; i<26; i++) { m.insert(pair<char, int>("A"+i, 65+i)); } char ch = "G"; map<char, int>::iterator p; // find value given key p = m.find(ch); if(p != m.end()) cout << "Its ASCII value is " << p->second; else cout << "Key not in map.\n"; return 0;
} /* Its ASCII value is 71
*/ </source>