Obtaining a generic bidirectional iterator from a vector
===

Before writing a function that takes a generic bidirectional iterator I wanted to test out how it works for a vector of ints.

    vector<int> a(10,1);
    iterator<bidirectional_iterator_tag, int> i = a.begin();
    for (; i != a.end(); ++i) cout << *i;

This code soes not compile. g++ complains you cannot convert the return type of begin() to `iterator<bidirectional_iterator_tag, int>` and that  the operators `++` and `*` are not defined on it. Obviously I am doing something wrong, would appreciate help.