145 template <
class R = T >
147 resize < R > ( count );
159 template <
class InputIt >
171 template <
class Iterator >
224 if (
this == & other )
268 template<
class InputIt >
269 void assign ( InputIt first, InputIt last ) {
283 void assign ( std::initializer_list < R > ilist ) {
297 return * m_data.at ( index );
309 return * m_data.at ( index );
321 return * m_data [ index ];
333 return * m_data [ index ];
343 return * m_data.front ( );
353 return * m_data.front ( );
363 return * m_data.back ( );
373 return * m_data.back ( );
403 return make_move_iterator ( this->
begin ( ) );
442 auto end ( ) &&
noexcept {
443 return make_move_iterator ( this->
end ( ) );
523 auto endIter =
end ( );
524 auto beginIter =
begin ( );
535 auto endIter =
end ( );
536 auto beginIter =
begin ( );
547 auto endIter = std::move ( * this ).end ( );
548 auto beginIter = std::move ( * this ).begin ( );
559 return m_data.empty ( );
569 return m_data.size ( );
579 return m_data.max_size ( );
589 m_data.reserve ( new_cap );
599 return m_data.capacity ( );
607 m_data.shrink_to_fit ( );
615 for ( T * data : m_data ) {
653 delete std::exchange ( m_data.at ( dist ),
ext::clone ( std::forward < R > ( value ) ) );
690 delete std::exchange ( m_data.at ( m_data.size ( ) - dist - 1 ),
ext::clone ( std::forward < R > ( value ) ) );
707 template <
class R = T,
class ... Args >
724 template <
class R = T,
class ... Args >
726 return set ( pos, R ( std::forward < Args > ( args ) ... ) );
741 template <
class R = T,
class ... Args >
758 template <
class R = T,
class ... Args >
760 return set ( pos, R ( std::forward < Args > ( args ) ... ) );
776 return insert ( const_insert ( pos ), std::forward < R > ( value ) );
898 * ( std::next (
res.base ( ) ).base ( ) +
i ) =
ext::clone ( value );
914 template <
class InputIt >
930 template <
class InputIt >
952 template <
class InputIt >
968 template <
class InputIt >
974 * ( std::next (
res.base ( ) ).base ( ) +
i ) =
ext::clone ( * first );
1006 template <
class R >
1008 return insert ( pos, ilist.begin ( ), ilist.end ( ) );
1022 template <
class R >
1038 template <
class R >
1040 return insert ( pos, ilist.begin ( ), ilist.end ( ) );
1055 template <
class R = T,
class ... Args >
1072 template <
class R = T,
class ... Args >
1074 return insert ( pos, R ( std::forward < Args > ( args ) ... ) );
1089 template <
class R = T,
class ... Args >
1106 template <
class R = T,
class ... Args >
1108 return insert ( pos, R ( std::forward < Args > ( args ) ... ) );
1132 delete std::addressof ( * pos );
1157 delete std::addressof ( * pos );
1184 for (
const_iterator first_copy = first; first_copy != last; ++ first_copy ) {
1185 delete std::addressof ( * first_copy );
1214 delete std::addressof ( * first_copy );
1227 template <
class R >
1229 insert (
cend ( ), std::forward < R > ( value ) );
1244 template <
class R = T,
class ... Args >
1246 return * emplace < R > (
cend ( ), std::forward < Args > ( args ) ... );
1254 delete m_data.back ( );
1255 m_data.pop_back ( );
1266 template <
class R = T >
1268 for (
size_type i = count;
i < m_data.size ( ); ++
i ) {
1269 delete m_data [
i ];
1272 m_data.resize ( count );
1273 for ( ;
i < count; ++
i ) {
1274 m_data [
i ] =
new R ( );
1287 template <
class R >
1289 for (
size_type i = count;
i < m_data.size ( ); ++
i ) {
1290 delete m_data [
i ];
1293 m_data.resize ( count );
1294 for ( ;
i < count; ++
i ) {
1306 for (
size_type i = count;
i < m_data.size ( ); ++
i ) {
1307 delete m_data [
i ];
1309 m_data.resize (
std::min ( count, m_data.size ( ) ) );
1319 std::swap ( this->m_data, other.m_data );
1324 return std::lexicographical_compare_three_way ( first.
begin ( ), first.
end ( ),
second.begin ( ),
second.end ( ) );
1362 if(!first) out <<
", ";
Adaptor iterator to additionally call second dereference on the iterator dereference result.
Definition: iterator.hpp:556
Iterator base() const
The underlying iterator getter.
Definition: iterator.hpp:798
Implementation of iterator_range, i.e. pair of iterators. The class provides most notably begin and e...
Definition: range.hpp:24
Implementation of vector storing dynamicaly allocated instances of given type. The class mimicks the ...
Definition: ptr_vector.hpp:44
iterator emplace_set(const_iterator pos, Args &&... args)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:725
auto begin() &&noexcept
Move iterator to the begining of the values range in the vector.
Definition: ptr_vector.hpp:402
reference operator[](size_type index)
Array subscript operator.
Definition: ptr_vector.hpp:320
iterator insert(const_iterator pos, size_type count, const R &value)
Inserts the count copies of value on position given by iterator pos.
Definition: ptr_vector.hpp:857
void resize(size_type count)
Changes the size of the vector, allocates new elements if the size increases. The possibly needed val...
Definition: ptr_vector.hpp:1267
iterator insert(iterator pos, size_type count, const R &value)
Inserts the count copies of value on position given by iterator pos.
Definition: ptr_vector.hpp:840
reverse_iterator insert(reverse_iterator pos, R &&value)
Inserts the value on position given by iterator pos.
Definition: ptr_vector.hpp:807
void reserve(size_type new_cap)
Prealocates space for given number of elements. Does not shrink the vector.
Definition: ptr_vector.hpp:588
reverse_iterator insert(reverse_iterator pos, InputIt first, InputIt last)
Inserts the values from the given range to positions starting at given iterator pos.
Definition: ptr_vector.hpp:953
iterator insert(const_iterator pos, R &&value)
Inserts the value on position given by iterator pos.
Definition: ptr_vector.hpp:791
iterator insert(iterator pos, InputIt first, InputIt last)
Inserts the values from the given range to positions starting at given iterator pos.
Definition: ptr_vector.hpp:915
reference front()
Getter of a value on the lowest index.
Definition: ptr_vector.hpp:342
size_type capacity() const noexcept
Returns the preallocated size of the vector.
Definition: ptr_vector.hpp:598
const_reference back() const
Getter of a value on the highest index.
Definition: ptr_vector.hpp:372
reverse_iterator set(const_reverse_iterator pos, R &&value)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:686
iterator insert(const_iterator pos, std::initializer_list< R > ilist)
Inserts the values from the given initializer list to positions starting at given iterator pos.
Definition: ptr_vector.hpp:1007
iterator end() &noexcept
Iterator one past the last element of the values range in the vector.
Definition: ptr_vector.hpp:422
reverse_iterator insert(const_reverse_iterator pos, size_type count, const R &value)
Inserts the count copies of value on position given by iterator pos.
Definition: ptr_vector.hpp:895
iterator erase(const_iterator pos)
Removes element from the container at position given by parameter pos.
Definition: ptr_vector.hpp:1131
auto range() const &
Make range of non-const begin to end iterators.
Definition: ptr_vector.hpp:534
const_reference at(size_type index) const
Getter of a reference to the value on given index.
Definition: ptr_vector.hpp:308
size_type max_size() const noexcept
Returns the maximal number of values possible to store inside the container.
Definition: ptr_vector.hpp:578
reverse_iterator erase(reverse_iterator first, reverse_iterator last)
Removes elements from the container in range given parameters first and last.
Definition: ptr_vector.hpp:1199
ptr_vector(const ptr_vector &other)
Copy constrctor of the pointer vector.
Definition: ptr_vector.hpp:195
ptr_vector() noexcept=default
The default constructor creating empty vector.
void push_back(R &&value)
Appends a new value at the end of the container.
Definition: ptr_vector.hpp:1228
reverse_iterator rend() noexcept
Reverse iterator one past the last element of the reversed range of values in the vector.
Definition: ptr_vector.hpp:492
iterator erase(iterator first, iterator last)
Removes elements from the container in range given parameters first and last.
Definition: ptr_vector.hpp:1170
ptr_vector(size_type count)
The constructor of the vector of specific size. Elements of the vector are defaultly constructed valu...
Definition: ptr_vector.hpp:146
void pop_back()
Removes element from the end of the container.
Definition: ptr_vector.hpp:1253
void swap(ptr_vector &other)
Swaps two instances of pointer vector.
Definition: ptr_vector.hpp:1318
bool operator==(const ptr_vector< T > &second) const
Specialisation of equality operator for pointer vector.
Definition: ptr_vector.hpp:1338
const_iterator end() const &noexcept
Const iterator one past the last element of the values range in the vector.
Definition: ptr_vector.hpp:432
reverse_iterator emplace(reverse_iterator pos, Args &&... args)
Inserts a new value to the container at position given by parameter pos. The new value is constructed...
Definition: ptr_vector.hpp:1090
iterator emplace(iterator pos, Args &&... args)
Inserts a new value to the container at position given by parameter pos. The new value is constructed...
Definition: ptr_vector.hpp:1056
ptr_vector(InputIt first, InputIt last)
Constructor of the vector from range specified by iterators.
Definition: ptr_vector.hpp:160
const_reverse_iterator rend() const noexcept
Reverse iterator one past the last element of the reversed range of values in the vector.
Definition: ptr_vector.hpp:502
void resize(size_type count, const R &value)
Changes the size of the vector. If the container increases in size copies of the value are used at ne...
Definition: ptr_vector.hpp:1288
reference at(size_type index)
Getter of a reference to the value on given index.
Definition: ptr_vector.hpp:296
const_reverse_iterator crend() const noexcept
Reverse iterator one past the last element of the reversed range of values in the vector.
Definition: ptr_vector.hpp:512
reverse_iterator emplace_set(reverse_iterator pos, Args &&... args)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:742
reverse_iterator insert(reverse_iterator pos, size_type count, const R &value)
Inserts the count copies of value on position given by iterator pos.
Definition: ptr_vector.hpp:878
iterator begin() &noexcept
Iterator to the begining of the values range in the vector.
Definition: ptr_vector.hpp:382
reverse_iterator insert(reverse_iterator pos, std::initializer_list< R > ilist)
Inserts the values from the given initializer list to positions starting at given iterator pos.
Definition: ptr_vector.hpp:1023
reference emplace_back(Args &&... args)
Appends a new value at the end of the container. The value is constructed inside the method using pro...
Definition: ptr_vector.hpp:1245
reverse_iterator rbegin() noexcept
Reverse iterator to the begining of the reversed range of values in the vector.
Definition: ptr_vector.hpp:462
iterator insert(iterator pos, std::initializer_list< R > ilist)
Inserts the values from the given initializer list to positions starting at given iterator pos.
Definition: ptr_vector.hpp:991
size_type size() const noexcept
Getter of the vector size.
Definition: ptr_vector.hpp:568
const_reference front() const
Getter of a value on the lowest index.
Definition: ptr_vector.hpp:352
auto end() &&noexcept
Move iterator to the begining of the values range in the vector.
Definition: ptr_vector.hpp:442
iterator erase(iterator pos)
Removes element from the container at position given by parameter pos.
Definition: ptr_vector.hpp:1119
ptr_vector< T > & operator=(const ptr_vector< T > &other)
The copy operator of assignment.
Definition: ptr_vector.hpp:223
iterator set(const_iterator pos, R &&value)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:649
iterator insert(const_iterator pos, InputIt first, InputIt last)
Inserts the values from the given range to positions starting at given iterator pos.
Definition: ptr_vector.hpp:931
void assign(InputIt first, InputIt last)
Sets the content of the vector to values in the given range.
Definition: ptr_vector.hpp:269
const_reverse_iterator crbegin() const noexcept
Reverse iterator to the begining of the reversed range of values in the vector.
Definition: ptr_vector.hpp:482
void assign(size_type count, const R &value)
Sets the content of the vector to value copied count times.
Definition: ptr_vector.hpp:254
iterator emplace_set(iterator pos, Args &&... args)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:708
void clear() noexcept
Removes all values from the vector.
Definition: ptr_vector.hpp:614
ptr_vector(ptr_vector &&other) noexcept
Move constrctor of the pointer vector.
Definition: ptr_vector.hpp:205
std::ptrdiff_t diference_type
The type of size differences.
Definition: ptr_vector.hpp:68
const T * const_pointer
The type of pointer to constant value.
Definition: ptr_vector.hpp:92
void shrink_to_fit()
Reallocates the vector to have the miniaml space overhead.
Definition: ptr_vector.hpp:606
auto range() &&
Make range of move begin to end iterators.
Definition: ptr_vector.hpp:546
auto range() &
Make range of non-const begin to end iterators.
Definition: ptr_vector.hpp:522
iterator set(iterator pos, R &&value)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:633
reverse_iterator insert(const_reverse_iterator pos, std::initializer_list< R > ilist)
Inserts the values from the given initializer list to positions starting at given iterator pos.
Definition: ptr_vector.hpp:1039
T value_type
The type of values.
Definition: ptr_vector.hpp:56
~ptr_vector() noexcept
The destructor of the vector.
Definition: ptr_vector.hpp:213
const value_type & const_reference
The type of reference to constant values.
Definition: ptr_vector.hpp:80
value_type & reference
The type of reference to values.
Definition: ptr_vector.hpp:74
reverse_iterator insert(const_reverse_iterator pos, R &&value)
Inserts the value on position given by iterator pos.
Definition: ptr_vector.hpp:823
reference back()
Getter of a value on the highest index.
Definition: ptr_vector.hpp:362
reverse_iterator emplace(const_reverse_iterator pos, Args &&... args)
Inserts a new value to the container at position given by parameter pos. The new value is constructed...
Definition: ptr_vector.hpp:1107
iterator insert(iterator pos, R &&value)
Inserts the value on position given by iterator pos.
Definition: ptr_vector.hpp:775
reverse_iterator emplace_set(const_reverse_iterator pos, Args &&... args)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:759
void assign(std::initializer_list< R > ilist)
Sets the content of the vector to values in the initializer list.
Definition: ptr_vector.hpp:283
auto operator<=>(const ext::ptr_vector< T > &second) const
Definition: ptr_vector.hpp:1322
bool empty() const noexcept
Array emptines test.
Definition: ptr_vector.hpp:558
reverse_iterator set(reverse_iterator pos, R &&value)
Changes the value on position given by iterator pos.
Definition: ptr_vector.hpp:670
iterator emplace(const_iterator pos, Args &&... args)
Inserts a new value to the container at position given by parameter pos. The new value is constructed...
Definition: ptr_vector.hpp:1073
reverse_iterator erase(const_reverse_iterator pos)
Removes element from the container at position given by parameter pos.
Definition: ptr_vector.hpp:1156
reverse_iterator insert(const_reverse_iterator pos, InputIt first, InputIt last)
Inserts the values from the given range to positions starting at given iterator pos.
Definition: ptr_vector.hpp:969
const_reverse_iterator rbegin() const noexcept
Reverse iterator to the begining of the reversed range of values in the vector.
Definition: ptr_vector.hpp:472
const_iterator begin() const &noexcept
Const iterator to the begining of the values range in the vector.
Definition: ptr_vector.hpp:392
const_iterator cend() const noexcept
Iterator one past the last element of the values range in the vector.
Definition: ptr_vector.hpp:452
const_iterator cbegin() const noexcept
Iterator to the begining of the values range in the vector.
Definition: ptr_vector.hpp:412
std::size_t size_type
The type of sizes.
Definition: ptr_vector.hpp:62
iterator erase(const_iterator first, const_iterator last)
Removes elements from the container in range given parameters first and last.
Definition: ptr_vector.hpp:1183
ptr_vector(const ext::iterator_range< Iterator > &range)
Definition: ptr_vector.hpp:172
reverse_iterator erase(const_reverse_iterator first, const_reverse_iterator last)
Removes elements from the container in range given parameters first and last.
Definition: ptr_vector.hpp:1212
ptr_vector(size_type count, const R &value)
Constructor of the vector of size given by count and filled with values from value.
Definition: ptr_vector.hpp:185
T * pointer
The type of pointer to values.
Definition: ptr_vector.hpp:86
void shrink(size_type count)
Like resize but only shrinks the container. If the requested size of the vector is bigger than actual...
Definition: ptr_vector.hpp:1305
reverse_iterator erase(reverse_iterator pos)
Removes element from the container at position given by parameter pos.
Definition: ptr_vector.hpp:1144
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
auto begin() &
Inherited behavior of begin for non-const instance.
Definition: vector.hpp:125
iterator erase(iterator pos)
Removes element from the container at position given by parameter pos.
Definition: vector.hpp:323
reverse_iterator insert(const_reverse_iterator pos, const T &value)
Inserts the value on position given by iterator pos.
Definition: vector.hpp:229
auto end() &
Inherited behavior of end for non-const instance.
Definition: vector.hpp:155
p second
Definition: ToRegExpAlgebraic.h:126
int i
Definition: AllEpsilonClosure.h:118
return res
Definition: MinimizeByPartitioning.h:145
Definition: sigHandler.cpp:20
constexpr const T & min(const T &a)
Definition: algorithm.hpp:310
auto clone(T &&tmp)
Wrapper around clone by means of using copy constructor or clone method if available.
Definition: clone.hpp:41
dereferencing_iterator< Iterator > dereferencer(Iterator iter)
Dereferencing adaptor construction function.
Definition: iterator.hpp:815
std::ostream & operator<<(ext::reference_wrapper< std::ostream > &os, std::ostream &(*const func)(std::ostream &))
Overloaded function allowing same operations on wrapped output stream as on the actual output stream,...
Definition: GlobalData.cpp:33
Definition: FordFulkerson.hpp:16
void swap(ext::managed_linear_set< T, Compare, Alloc > &x, ext::managed_linear_set< T, Compare, Alloc > &y)
Specialisation of swap for linear set.
Definition: managed_linear_set.hpp:864