29 #ifndef __ETL_IVECTOR__
30 #define __ETL_IVECTOR__
31 #define __ETL_IN_IVECTOR_H__
42 #ifndef ETL_THROW_EXCEPTIONS
60 typedef const T& const_reference;
62 typedef const T* const_pointer;
64 typedef const T* const_iterator;
65 typedef std::reverse_iterator<iterator> reverse_iterator;
66 typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
67 typedef size_t size_type;
68 typedef typename std::iterator_traits<iterator>::difference_type difference_type;
89 std::copy(other.
begin(), other.
begin() + length, p_buffer);
126 const_iterator
end()
const
155 return reverse_iterator(
end());
164 return const_reverse_iterator(
end());
173 return reverse_iterator(
begin());
180 const_reverse_iterator
rend()
const
182 return const_reverse_iterator(
begin());
191 return const_reverse_iterator(
cend());
198 const_reverse_iterator
crend()
const
200 return const_reverse_iterator(
cbegin());
210 void resize(
size_t newSize, T value = T())
215 #ifdef ETL_THROW_EXCEPTIONS
224 std::fill(&p_buffer[
current_size], &p_buffer[newSize], value);
256 reference
at(
size_t i)
261 #ifdef ETL_THROW_EXCEPTIONS
277 const_reference
at(
size_t i)
const
282 #ifdef ETL_THROW_EXCEPTIONS
353 template <
typename TIterator>
354 void assign(TIterator first, TIterator last)
356 difference_type count = std::distance(first, last);
360 #ifdef ETL_THROW_EXCEPTIONS
366 else if (static_cast<size_t>(count) >
MAX_SIZE)
368 #ifdef ETL_THROW_EXCEPTIONS
377 std::copy(first, last,
begin());
392 #ifdef ETL_THROW_EXCEPTIONS
400 std::fill_n(
begin(), n, value);
414 #ifdef ETL_THROW_EXCEPTIONS
432 iterator
insert(iterator position, parameter_t value)
434 if (position ==
end())
437 return iterator(&
back());
443 #ifdef ETL_THROW_EXCEPTIONS
452 std::copy_backward(position,
end() - 1,
end());
467 void insert(iterator position,
size_t n, parameter_t value)
471 #ifdef ETL_THROW_EXCEPTIONS
480 std::copy_backward(position,
end() - n,
end());
481 std::fill_n(position, n, value);
492 template <
class TIterator>
493 void insert(iterator position, TIterator first, TIterator last)
495 size_t count = std::distance(first, last);
499 #ifdef ETL_THROW_EXCEPTIONS
508 std::copy_backward(position,
end() - count,
end());
509 std::copy(first, first + count, position);
520 std::copy(iElement + 1,
end(), iElement);
534 iterator
erase(iterator first, iterator last)
536 std::copy(last,
end(), first);
574 template <
typename T>
587 template <
typename T>
590 return !(lhs == rhs);
600 template <
typename T>
603 return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
613 template <
typename T>
616 return std::lexicographical_compare(lhs.
begin(), lhs.
end(), rhs.
begin(), rhs.
end(), std::greater<T>());
626 template <
typename T>
639 template <
typename T>
646 #undef __etl_in_ivector_h__
reverse_iterator rend()
Definition: ivector.h:171
void push_back(parameter_t value)
Definition: ivector.h:410
void push_back()
Definition: vector_base.h:178
ivector(T *p_buffer, size_t MAX_SIZE)
Constructor.
Definition: ivector.h:556
bool operator==(const etl::ivector< T > &lhs, const etl::ivector< T > &rhs)
Definition: ivector.h:575
const_reference at(size_t i) const
Definition: ivector.h:277
const_reference back() const
Definition: ivector.h:323
iterator end()
Definition: ivector.h:117
const size_type MAX_SIZE
The maximum number of elements in the vector.
Definition: vector_base.h:218
reference at(size_t i)
Definition: ivector.h:256
reference front()
Definition: ivector.h:296
void clear()
Definition: ivector.h:546
iterator erase(iterator first, iterator last)
Definition: ivector.h:534
iterator insert(iterator position, parameter_t value)
Definition: ivector.h:432
ivector & operator=(ivector &other)
Definition: ivector.h:85
Determine how to pass parameters.
Definition: parameter_type.h:40
void insert(iterator position, TIterator first, TIterator last)
Definition: ivector.h:493
void assign(size_t n, parameter_t value)
Definition: ivector.h:388
const_iterator begin() const
Definition: ivector.h:108
reference back()
Definition: ivector.h:314
const_reference front() const
Definition: ivector.h:305
const_pointer data() const
Definition: ivector.h:341
Definition: algorithm.h:43
iterator begin()
Definition: ivector.h:99
bool operator>(const etl::ivector< T > &lhs, const etl::ivector< T > &rhs)
Definition: ivector.h:614
reverse_iterator rbegin()
Definition: ivector.h:153
const_iterator end() const
Definition: ivector.h:126
bool operator>=(const etl::ivector< T > &lhs, const etl::ivector< T > &rhs)
Definition: ivector.h:640
iterator erase(iterator iElement)
Definition: ivector.h:518
bool operator!=(const etl::ivector< T > &lhs, const etl::ivector< T > &rhs)
Definition: ivector.h:588
const_iterator cend() const
Definition: ivector.h:144
bool operator<(const etl::ivector< T > &lhs, const etl::ivector< T > &rhs)
Definition: ivector.h:601
void insert(iterator position, size_t n, parameter_t value)
Definition: ivector.h:467
const_reverse_iterator crend() const
Definition: ivector.h:198
const_iterator cbegin() const
Definition: ivector.h:135
static void error(const exception &e)
Definition: error_handler.cpp:50
Definition: vector_base.h:106
pointer data()
Definition: ivector.h:332
const_reverse_iterator rend() const
Definition: ivector.h:180
Definition: vector_base.h:64
size_type current_size
The current number of elements in the vector.
Definition: vector_base.h:217
const_reverse_iterator crbegin() const
Definition: ivector.h:189
Definition: vector_base.h:92
void resize(size_t newSize, T value=T())
Definition: ivector.h:210
void assign(TIterator first, TIterator last)
Definition: ivector.h:354
Definition: vector_base.h:78
size_type size() const
Definition: vector_base.h:116
reference operator[](size_t i)
Definition: ivector.h:235
const_reverse_iterator rbegin() const
Definition: ivector.h:162