vector.pxd 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. cdef extern from "<vector>" namespace "std" nogil:
  2. cdef cppclass vector[T,ALLOCATOR=*]:
  3. ctypedef T value_type
  4. ctypedef ALLOCATOR allocator_type
  5. # these should really be allocator_type.size_type and
  6. # allocator_type.difference_type to be true to the C++ definition
  7. # but cython doesn't support deferred access on template arguments
  8. ctypedef size_t size_type
  9. ctypedef ptrdiff_t difference_type
  10. cppclass iterator:
  11. T& operator*()
  12. iterator operator++()
  13. iterator operator--()
  14. iterator operator+(size_type)
  15. iterator operator-(size_type)
  16. difference_type operator-(iterator)
  17. bint operator==(iterator)
  18. bint operator!=(iterator)
  19. bint operator<(iterator)
  20. bint operator>(iterator)
  21. bint operator<=(iterator)
  22. bint operator>=(iterator)
  23. cppclass reverse_iterator:
  24. T& operator*()
  25. reverse_iterator operator++()
  26. reverse_iterator operator--()
  27. reverse_iterator operator+(size_type)
  28. reverse_iterator operator-(size_type)
  29. difference_type operator-(reverse_iterator)
  30. bint operator==(reverse_iterator)
  31. bint operator!=(reverse_iterator)
  32. bint operator<(reverse_iterator)
  33. bint operator>(reverse_iterator)
  34. bint operator<=(reverse_iterator)
  35. bint operator>=(reverse_iterator)
  36. cppclass const_iterator(iterator):
  37. pass
  38. cppclass const_reverse_iterator(reverse_iterator):
  39. pass
  40. vector() except +
  41. vector(vector&) except +
  42. vector(size_type) except +
  43. vector(size_type, T&) except +
  44. #vector[input_iterator](input_iterator, input_iterator)
  45. T& operator[](size_type)
  46. #vector& operator=(vector&)
  47. bint operator==(vector&, vector&)
  48. bint operator!=(vector&, vector&)
  49. bint operator<(vector&, vector&)
  50. bint operator>(vector&, vector&)
  51. bint operator<=(vector&, vector&)
  52. bint operator>=(vector&, vector&)
  53. void assign(size_type, const T&)
  54. void assign[input_iterator](input_iterator, input_iterator) except +
  55. T& at(size_type) except +
  56. T& back()
  57. iterator begin()
  58. const_iterator const_begin "begin"()
  59. size_type capacity()
  60. void clear()
  61. bint empty()
  62. iterator end()
  63. const_iterator const_end "end"()
  64. iterator erase(iterator)
  65. iterator erase(iterator, iterator)
  66. T& front()
  67. iterator insert(iterator, const T&) except +
  68. iterator insert(iterator, size_type, const T&) except +
  69. iterator insert[Iter](iterator, Iter, Iter) except +
  70. size_type max_size()
  71. void pop_back()
  72. void push_back(T&) except +
  73. reverse_iterator rbegin()
  74. const_reverse_iterator const_rbegin "crbegin"()
  75. reverse_iterator rend()
  76. const_reverse_iterator const_rend "crend"()
  77. void reserve(size_type)
  78. void resize(size_type) except +
  79. void resize(size_type, T&) except +
  80. size_type size()
  81. void swap(vector&)
  82. # C++11 methods
  83. T* data()
  84. const T* const_data "data"()
  85. void shrink_to_fit()