1cdef extern from "<vector>" namespace "std":
2    cdef cppclass vector[T]:
3        cppclass iterator:
4            T& operator*() nogil
5            iterator operator++() nogil
6            iterator operator--() nogil
7            iterator operator+(size_t) nogil
8            iterator operator-(size_t) nogil
9            bint operator==(iterator) nogil
10            bint operator!=(iterator) nogil
11            bint operator<(iterator) nogil
12            bint operator>(iterator) nogil
13            bint operator<=(iterator) nogil
14            bint operator>=(iterator) nogil
15        cppclass reverse_iterator:
16            T& operator*() nogil
17            iterator operator++() nogil
18            iterator operator--() nogil
19            iterator operator+(size_t) nogil
20            iterator operator-(size_t) nogil
21            bint operator==(reverse_iterator) nogil
22            bint operator!=(reverse_iterator) nogil
23            bint operator<(reverse_iterator) nogil
24            bint operator>(reverse_iterator) nogil
25            bint operator<=(reverse_iterator) nogil
26            bint operator>=(reverse_iterator) nogil
27        #cppclass const_iterator(iterator):
28        #    pass
29        #cppclass const_reverse_iterator(reverse_iterator):
30        #    pass
31        vector() nogil except +
32        vector(vector&) nogil except +
33        vector(size_t) nogil except +
34        vector(size_t, T&) nogil except +
35        #vector[input_iterator](input_iterator, input_iterator)
36        T& operator[](size_t) nogil
37        #vector& operator=(vector&)
38        bint operator==(vector&, vector&) nogil
39        bint operator!=(vector&, vector&) nogil
40        bint operator<(vector&, vector&) nogil
41        bint operator>(vector&, vector&) nogil
42        bint operator<=(vector&, vector&) nogil
43        bint operator>=(vector&, vector&) nogil
44        void assign(size_t, T&) nogil
45        void assign[input_iterator](input_iterator, input_iterator)
46        T& at(size_t) nogil
47        T& back() nogil
48        iterator begin() nogil
49        #const_iterator begin()
50        size_t capacity() nogil
51        void clear() nogil
52        bint empty() nogil
53        iterator end() nogil
54        #const_iterator end()
55        iterator erase(iterator) nogil
56        iterator erase(iterator, iterator) nogil
57        T& front() nogil
58        iterator insert(iterator, T&) nogil
59        void insert(iterator, size_t, T&) nogil
60        void insert(iterator, iterator, iterator) nogil
61        size_t max_size() nogil
62        void pop_back() nogil
63        void push_back(T&) nogil
64        reverse_iterator rbegin() nogil
65        #const_reverse_iterator rbegin()
66        reverse_iterator rend() nogil
67        #const_reverse_iterator rend()
68        void reserve(size_t) nogil
69        void resize(size_t) nogil
70        void resize(size_t, T&) nogil
71        size_t size() nogil
72        void swap(vector&) nogil
73        
74        #C++0x methods
75        T* data() nogil
76        void shrink_to_fit()
77