MCPcopy Create free account
hub / github.com/RcppCore/Rcpp / iterator

Class iterator

inst/include/Rcpp/vector/MatrixBase.h:83–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81 }
82
83 class iterator {
84 public:
85 typedef stored_type reference ;
86 typedef stored_type* pointer ;
87 typedef R_xlen_t difference_type ;
88 typedef stored_type value_type;
89 typedef std::random_access_iterator_tag iterator_category ;
90
91 iterator( const MatrixBase& object_, R_xlen_t index_ ) :
92 object(object_), i(0), j(0), nr(object_.nrow()), nc(object_.ncol()) {
93
94 update_index( index_) ;
95 }
96
97 iterator( const iterator& other) :
98 object(other.object), i(other.i), j(other.j), nr(other.nr), nc(other.nc){}
99
100 inline iterator& operator++(){
101 i++ ;
102 if( i == nr ){
103 j++ ;
104 i=0 ;
105 }
106 return *this ;
107 }
108 inline iterator operator++(int){
109 iterator orig(*this) ;
110 ++(*this) ;
111 return orig ;
112 }
113
114 inline iterator& operator--(){
115 i-- ;
116 if( i == -1 ){
117 j-- ;
118 i = nr - 1 ;
119 }
120 return *this ;
121 }
122 inline iterator operator--(int){
123 iterator orig(*this) ;
124 --(*this) ;
125 return orig ;
126 }
127
128 inline iterator operator+(difference_type n) const {
129 return iterator( object, i + (j*nr) + n ) ;
130 }
131 inline iterator operator-(difference_type n) const {
132 return iterator( object, i + (j*nr) - n ) ;
133 }
134
135 inline iterator& operator+=(difference_type n) {
136 update_index( i + j*nr + n );
137 return *this ;
138 }
139 inline iterator& operator-=(difference_type n) {
140 update_index( i + j*nr - n );

Callers 13

beginMethod · 0.85
endMethod · 0.85
operator+Method · 0.85
operator-Method · 0.85
operator+Method · 0.85
operator-Method · 0.85
operator+Method · 0.85
operator-Method · 0.85
beginMethod · 0.85
endMethod · 0.85
getMethod · 0.85
operator+Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected