cdef extern from "" namespace "std" nogil: cdef cppclass vector[T,ALLOCATOR=*]: ctypedef T value_type ctypedef ALLOCATOR allocator_type # these should really be allocator_type.size_type and # allocator_type.difference_type to be true to the C++ definition # but cython doesn't support deferred access on template arguments ctypedef size_t size_type ctypedef ptrdiff_t difference_type cppclass iterator: T& operator*() iterator operator++() iterator operator--() iterator operator+(size_type) iterator operator-(size_type) difference_type operator-(iterator) bint operator==(iterator) bint operator!=(iterator) bint operator<(iterator) bint operator>(iterator) bint operator<=(iterator) bint operator>=(iterator) cppclass reverse_iterator: T& operator*() reverse_iterator operator++() reverse_iterator operator--() reverse_iterator operator+(size_type) reverse_iterator operator-(size_type) difference_type operator-(reverse_iterator) bint operator==(reverse_iterator) bint operator!=(reverse_iterator) bint operator<(reverse_iterator) bint operator>(reverse_iterator) bint operator<=(reverse_iterator) bint operator>=(reverse_iterator) cppclass const_iterator(iterator): pass cppclass const_reverse_iterator(reverse_iterator): pass vector() except + vector(vector&) except + vector(size_type) except + vector(size_type, T&) except + #vector[input_iterator](input_iterator, input_iterator) T& operator[](size_type) #vector& operator=(vector&) bint operator==(vector&, vector&) bint operator!=(vector&, vector&) bint operator<(vector&, vector&) bint operator>(vector&, vector&) bint operator<=(vector&, vector&) bint operator>=(vector&, vector&) void assign(size_type, const T&) void assign[input_iterator](input_iterator, input_iterator) except + T& at(size_type) except + T& back() iterator begin() const_iterator const_begin "begin"() size_type capacity() void clear() bint empty() iterator end() const_iterator const_end "end"() iterator erase(iterator) iterator erase(iterator, iterator) T& front() iterator insert(iterator, const T&) except + iterator insert(iterator, size_type, const T&) except + iterator insert[Iter](iterator, Iter, Iter) except + size_type max_size() void pop_back() void push_back(T&) except + reverse_iterator rbegin() const_reverse_iterator const_rbegin "crbegin"() reverse_iterator rend() const_reverse_iterator const_rend "crend"() void reserve(size_type) void resize(size_type) except + void resize(size_type, T&) except + size_type size() void swap(vector&) # C++11 methods T* data() const T* const_data "data"() void shrink_to_fit()