уменьшил количество строк
This commit is contained in:
@@ -225,18 +225,10 @@ public:
|
||||
|
||||
inline iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline T & operator *() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator ->() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator *() {return (*parent)[pos];}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline T & operator ->() {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline iterator & operator ++() {
|
||||
++pos;
|
||||
@@ -274,33 +266,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline iterator operator -(size_t p, const iterator & it) {return it - p;}
|
||||
friend inline iterator operator -(const iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline iterator operator -(size_t p, const iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const iterator & it1, const iterator & it2) {
|
||||
return it1.pos - it2.pos;
|
||||
}
|
||||
|
||||
friend inline iterator operator +(size_t p, const iterator & it) {return it + p;}
|
||||
friend inline iterator operator +(const iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline iterator operator +(size_t p, const iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const iterator & it1, const iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -330,12 +314,8 @@ public:
|
||||
|
||||
inline const_iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline const_iterator & operator ++() {
|
||||
++pos;
|
||||
@@ -373,33 +353,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline const_iterator operator -(size_t p, const const_iterator & it) {return it - p;}
|
||||
friend inline const_iterator operator -(const const_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_iterator operator -(size_t p, const const_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const const_iterator & it1, const const_iterator & it2) {
|
||||
return it1.pos - it2.pos;
|
||||
}
|
||||
|
||||
friend inline const_iterator operator +(size_t p, const const_iterator & it) {return it + p;}
|
||||
friend inline const_iterator operator +(const const_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_iterator operator +(size_t p, const const_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const const_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const const_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const const_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const const_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const const_iterator & it1, const const_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -429,18 +401,10 @@ public:
|
||||
|
||||
inline reverse_iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline T & operator *() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator ->() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator *() {return (*parent)[pos];}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline T & operator ->() {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline reverse_iterator & operator ++() {
|
||||
--pos;
|
||||
@@ -478,33 +442,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline reverse_iterator operator -(size_t p, const reverse_iterator & it) {return it - p;}
|
||||
friend inline reverse_iterator operator -(const reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline reverse_iterator operator -(size_t p, const reverse_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const reverse_iterator & it1, const reverse_iterator & it2) {
|
||||
return it2.pos - it1.pos;
|
||||
}
|
||||
|
||||
friend inline reverse_iterator operator +(size_t p, const reverse_iterator & it) {return it + p;}
|
||||
friend inline reverse_iterator operator +(const reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline reverse_iterator operator +(size_t p, const reverse_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const reverse_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const reverse_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const reverse_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const reverse_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const reverse_iterator & it1, const reverse_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -533,12 +489,8 @@ public:
|
||||
typedef std::random_access_iterator_tag iterator_category;
|
||||
|
||||
inline const_reverse_iterator(): parent(0), pos(0) {}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline const_reverse_iterator & operator ++() {
|
||||
--pos;
|
||||
@@ -576,33 +528,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline const_reverse_iterator operator -(size_t p, const const_reverse_iterator & it) {return it - p;}
|
||||
friend inline const_reverse_iterator operator -(const const_reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_reverse_iterator operator -(size_t p, const const_reverse_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const const_reverse_iterator & it1, const const_reverse_iterator & it2) {
|
||||
return it2.pos - it1.pos;
|
||||
}
|
||||
|
||||
friend inline const_reverse_iterator operator +(size_t p, const const_reverse_iterator & it) {return it + p;}
|
||||
friend inline const_reverse_iterator operator +(const const_reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_reverse_iterator operator +(size_t p, const const_reverse_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const const_reverse_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const const_reverse_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const const_reverse_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const const_reverse_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const const_reverse_iterator & it1, const const_reverse_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -627,9 +571,7 @@ public:
|
||||
//! \~russian Если массив - пуст, возвращаемый итератор будет равен \a end().
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a end(), \a rbegin(), \a rend()
|
||||
inline iterator begin() {
|
||||
return iterator(this, 0);
|
||||
}
|
||||
inline iterator begin() {return iterator(this, 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Iterator to the element following the last element.
|
||||
@@ -642,16 +584,10 @@ public:
|
||||
//! попытка доступа к нему приведёт к выходу за разрешенную память.
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a begin(), \a rbegin(), \a rend()
|
||||
inline iterator end() {
|
||||
return iterator(this, pid_size);
|
||||
}
|
||||
inline iterator end() {return iterator(this, pid_size);}
|
||||
|
||||
inline const_iterator begin() const {
|
||||
return const_iterator(this, 0);
|
||||
}
|
||||
inline const_iterator end() const {
|
||||
return const_iterator(this, pid_size);
|
||||
}
|
||||
inline const_iterator begin() const {return const_iterator(this, 0); }
|
||||
inline const_iterator end() const {return const_iterator(this, pid_size);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Returns a reverse iterator to the first element of the reversed array.
|
||||
@@ -665,9 +601,7 @@ public:
|
||||
//! Если массив пустой, то совпадает с итератором \a rend().
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a rend(), \a begin(), \a end()
|
||||
inline reverse_iterator rbegin() {
|
||||
return reverse_iterator(this, pid_size - 1);
|
||||
}
|
||||
inline reverse_iterator rbegin() {return reverse_iterator(this, pid_size - 1);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Returns a reverse iterator to the element
|
||||
@@ -683,40 +617,28 @@ public:
|
||||
//! попытка доступа к нему приведёт к выходу за разрешенную память.
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a rbegin(), \a begin(), \a end()
|
||||
inline reverse_iterator rend() {
|
||||
return reverse_iterator(this, -1);
|
||||
}
|
||||
inline reverse_iterator rend() {return reverse_iterator(this, -1);}
|
||||
|
||||
inline const_reverse_iterator rbegin() const {
|
||||
return const_reverse_iterator(this, pid_size - 1);
|
||||
}
|
||||
inline const_reverse_iterator rend() const {
|
||||
return const_reverse_iterator(this, -1);
|
||||
}
|
||||
inline const_reverse_iterator rbegin() const {return const_reverse_iterator(this, pid_size - 1);}
|
||||
inline const_reverse_iterator rend() const {return const_reverse_iterator(this, -1);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements in the container.
|
||||
//! \~russian Количество элементов массива.
|
||||
//! \~\sa \a size_s(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline size_t size() const {
|
||||
return pid_size;
|
||||
}
|
||||
inline size_t size() const {return pid_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements in the container as signed value.
|
||||
//! \~russian Количество элементов массива в виде знакового числа.
|
||||
//! \~\sa \a size(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline ssize_t size_s() const {
|
||||
return pid_size;
|
||||
}
|
||||
inline ssize_t size_s() const {return pid_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Same as \a size().
|
||||
//! \~russian Синоним \a size().
|
||||
//! \~\sa \a size(), \a size_s(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline size_t length() const {
|
||||
return pid_size;
|
||||
}
|
||||
inline size_t length() const {return pid_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements that the container has currently allocated space for.
|
||||
@@ -725,13 +647,9 @@ public:
|
||||
//! \~english To find out the actual number of items, use the function \a size().
|
||||
//! \~russian Чтобы узнать фактическое количество элементов используйте функцию \a size().
|
||||
//! \~\sa \a reserve(), \a size(), \a size_s()
|
||||
inline size_t capacity() const {
|
||||
return pid_rsize;
|
||||
}
|
||||
inline size_t capacity() const {return pid_rsize;}
|
||||
|
||||
inline size_t _start() const {
|
||||
return pid_start;
|
||||
}
|
||||
inline size_t _start() const {return pid_start;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Checks if the container has no elements.
|
||||
@@ -740,9 +658,7 @@ public:
|
||||
//! \~english **true** if the container is empty, **false** otherwise
|
||||
//! \~russian **true** если контейнер пуст, **false** иначе.
|
||||
//! \~\sa \a size(), \a size_s(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline bool isEmpty() const {
|
||||
return (pid_size == 0);
|
||||
}
|
||||
inline bool isEmpty() const {return (pid_size == 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Checks if the container has elements.
|
||||
@@ -751,9 +667,7 @@ public:
|
||||
//! \~english **true** if the container is not empty, **false** otherwise
|
||||
//! \~russian **true** если контейнер не пуст, **false** иначе.
|
||||
//! \~\sa \a size(), \a size_s(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline bool isNotEmpty() const {
|
||||
return (pid_size > 0);
|
||||
}
|
||||
inline bool isNotEmpty() const {return (pid_size > 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Tests whether at least one element in the array
|
||||
@@ -824,12 +738,8 @@ public:
|
||||
//! piCout << v; // {1, 2, 5, 9}
|
||||
//! \endcode
|
||||
//! \~\sa \a at()
|
||||
inline T & operator [](size_t index) {
|
||||
return pid_data[pid_start + index];
|
||||
}
|
||||
inline const T & operator [](size_t index) const {
|
||||
return pid_data[pid_start + index];
|
||||
}
|
||||
inline T & operator [](size_t index) {return pid_data[pid_start + index];}
|
||||
inline const T & operator [](size_t index) const {return pid_data[pid_start + index];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Read only access to element by `index`.
|
||||
@@ -841,9 +751,7 @@ public:
|
||||
//! \~russian Индекс элемента считается от `0`.
|
||||
//! Индекс элемента должен лежать в пределах от `0` до `size()-1`.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline const T & at(size_t index) const {
|
||||
return pid_data[pid_start + index];
|
||||
}
|
||||
inline const T & at(size_t index) const {return pid_data[pid_start + index];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Last element.
|
||||
@@ -855,12 +763,8 @@ public:
|
||||
//! \~russian Возвращает ссылку на последний элемент в массиве.
|
||||
//! Эта функция предполагает, что массив не пустой.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline T & back() {
|
||||
return pid_data[pid_start + pid_size - 1];
|
||||
}
|
||||
inline const T & back() const {
|
||||
return pid_data[pid_start + pid_size - 1];
|
||||
}
|
||||
inline T & back() {return pid_data[pid_start + pid_size - 1];}
|
||||
inline const T & back() const {return pid_data[pid_start + pid_size - 1];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Last element.
|
||||
@@ -872,12 +776,8 @@ public:
|
||||
//! \~russian Возвращает ссылку на пенрвый элемент в массиве.
|
||||
//! Эта функция предполагает, что массив не пустой.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline T & front() {
|
||||
return pid_data[pid_start];
|
||||
}
|
||||
inline const T & front() const {
|
||||
return pid_data[pid_start];
|
||||
}
|
||||
inline T & front() {return pid_data[pid_start];}
|
||||
inline const T & front() const {return pid_data[pid_start];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Compare operator with array `v`.
|
||||
@@ -893,9 +793,7 @@ public:
|
||||
//! \brief
|
||||
//! \~english Compare operator with array `v`.
|
||||
//! \~russian Оператор сравнения с массивом `v`.
|
||||
inline bool operator !=(const PIDeque<T> & v) const {
|
||||
return !(*this == v);
|
||||
}
|
||||
inline bool operator !=(const PIDeque<T> & v) const {return !(*this == v);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Tests if element `e` exists in the array.
|
||||
@@ -1196,9 +1094,7 @@ public:
|
||||
//! memcpy(vec.data(1), a, 2 * sizeof(int));
|
||||
//! piCout << v; // {2, 12, 13, 2}
|
||||
//! \endcode
|
||||
inline T * data(size_t index = 0) {
|
||||
return &(pid_data[pid_start + index]);
|
||||
}
|
||||
inline T * data(size_t index = 0) {return &(pid_data[pid_start + index]);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Read only pointer to array
|
||||
@@ -1218,9 +1114,7 @@ public:
|
||||
//! memcpy(a, v.data(), a.size() * sizeof(int));
|
||||
//! piCout << a[0] << a[1] << a[2]; // 1 3 5
|
||||
//! \endcode
|
||||
inline const T * data(size_t index = 0) const {
|
||||
return &(pid_data[pid_start + index]);
|
||||
}
|
||||
inline const T * data(size_t index = 0) const {return &(pid_data[pid_start + index]);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Creates sub-array of this array.
|
||||
@@ -1312,9 +1206,7 @@ public:
|
||||
//! \~english Same as \a fill().
|
||||
//! \~russian Тоже самое что и \a fill().
|
||||
//! \~\sa \a fill(), \a resize()
|
||||
inline PIDeque<T> & assign(const T & e = T()) {
|
||||
return fill(e);
|
||||
}
|
||||
inline PIDeque<T> & assign(const T & e = T()) {return fill(e);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english First does `resize(new_size)` then `fill(e)`.
|
||||
@@ -1894,9 +1786,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a prepend(), \a push_front(), \a push_back(), \a insert()
|
||||
inline PIDeque<T> & append(const T & e) {
|
||||
return push_back(e);
|
||||
}
|
||||
inline PIDeque<T> & append(const T & e) {return push_back(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1905,9 +1795,7 @@ public:
|
||||
//! \~english Overloaded function.
|
||||
//! \~russian Перегруженая функция.
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & append(T && e) {
|
||||
return push_back(std::move(e));
|
||||
}
|
||||
inline PIDeque<T> & append(T && e) {return push_back(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given elements to the end of the array.
|
||||
@@ -1920,9 +1808,7 @@ public:
|
||||
//! Добавляет элементы из
|
||||
//! [списка инициализации C++11](https://ru.cppreference.com/w/cpp/utility/initializer_list).
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & append(std::initializer_list<T> init_list) {
|
||||
return push_back(init_list);
|
||||
}
|
||||
inline PIDeque<T> & append(std::initializer_list<T> init_list) {return push_back(init_list);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the end of the array.
|
||||
@@ -1936,9 +1822,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & append(const PIDeque<T> & v) {
|
||||
return push_back(v);
|
||||
}
|
||||
inline PIDeque<T> & append(const PIDeque<T> & v) {return push_back(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1950,9 +1834,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & operator <<(const T & e) {
|
||||
return push_back(e);
|
||||
}
|
||||
inline PIDeque<T> & operator <<(const T & e) {return push_back(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1964,9 +1846,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & operator <<(T && e) {
|
||||
return push_back(std::move(e));
|
||||
}
|
||||
inline PIDeque<T> & operator <<(T && e) {return push_back(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the end of the array.
|
||||
@@ -1978,9 +1858,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append(), \a push_back()
|
||||
inline PIDeque<T> & operator <<(const PIDeque<T> & v) {
|
||||
return append(v);
|
||||
}
|
||||
inline PIDeque<T> & operator <<(const PIDeque<T> & v) {return append(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the begin of the array.
|
||||
@@ -2082,9 +1960,7 @@ public:
|
||||
//! piCout << v; // {5, 4, 1, 2, 3}
|
||||
//! \endcode
|
||||
//! \~\sa \a push_back(), \a append(), \a prepend(), \a insert()
|
||||
inline PIDeque<T> & prepend(const T & e) {
|
||||
return push_front(e);
|
||||
}
|
||||
inline PIDeque<T> & prepend(const T & e) {return push_front(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the begin of the array.
|
||||
@@ -2093,9 +1969,7 @@ public:
|
||||
//! \~english Overloaded function.
|
||||
//! \~russian Перегруженая функция.
|
||||
//! \~\sa \a prepend()
|
||||
inline PIDeque<T> & prepend(T && e) {
|
||||
return push_front(std::move(e));
|
||||
}
|
||||
inline PIDeque<T> & prepend(T && e) {return push_front(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the begin of the array.
|
||||
@@ -2109,9 +1983,7 @@ public:
|
||||
//! piCout << v; // {4, 5, 1, 2, 3}
|
||||
//! \endcode
|
||||
//! \~\sa \a prepend()
|
||||
inline PIDeque<T> & prepend(const PIDeque<T> & v) {
|
||||
return push_front(v);
|
||||
}
|
||||
inline PIDeque<T> & prepend(const PIDeque<T> & v) {return push_front(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given elements to the begin of the array.
|
||||
@@ -2124,9 +1996,7 @@ public:
|
||||
//! Добавляет элементы из
|
||||
//! [списка инициализации C++11](https://ru.cppreference.com/w/cpp/utility/initializer_list).
|
||||
//! \~\sa \a append()
|
||||
inline PIDeque<T> & prepend(std::initializer_list<T> init_list) {
|
||||
return prepend(init_list);
|
||||
}
|
||||
inline PIDeque<T> & prepend(std::initializer_list<T> init_list) {return prepend(init_list);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Remove one element from the end of the array.
|
||||
@@ -2651,9 +2521,7 @@ inline PICout operator <<(PICout s, const PIDeque<T> & v) {
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline void piSwap(PIDeque<T> & f, PIDeque<T> & s) {
|
||||
f.swap(s);
|
||||
}
|
||||
inline void piSwap(PIDeque<T> & f, PIDeque<T> & s) {f.swap(s);}
|
||||
|
||||
|
||||
#endif // PIDEQUE_H
|
||||
|
||||
@@ -226,18 +226,10 @@ public:
|
||||
|
||||
inline iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline T & operator *() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator ->() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator *() {return (*parent)[pos];}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline T & operator ->() {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline iterator & operator ++() {
|
||||
++pos;
|
||||
@@ -275,33 +267,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline iterator operator -(size_t p, const iterator & it) {return it - p;}
|
||||
friend inline iterator operator -(const iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline iterator operator -(size_t p, const iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const iterator & it1, const iterator & it2) {
|
||||
return it1.pos - it2.pos;
|
||||
}
|
||||
|
||||
friend inline iterator operator +(size_t p, const iterator & it) {return it + p;}
|
||||
friend inline iterator operator +(const iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline iterator operator +(size_t p, const iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const iterator & it1, const iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -331,12 +315,8 @@ public:
|
||||
|
||||
inline const_iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline const_iterator & operator ++() {
|
||||
++pos;
|
||||
@@ -374,33 +354,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline const_iterator operator -(size_t p, const const_iterator & it) {return it - p;}
|
||||
friend inline const_iterator operator -(const const_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_iterator operator -(size_t p, const const_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const const_iterator & it1, const const_iterator & it2) {
|
||||
return it1.pos - it2.pos;
|
||||
}
|
||||
|
||||
friend inline const_iterator operator +(size_t p, const const_iterator & it) {return it + p;}
|
||||
friend inline const_iterator operator +(const const_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_iterator operator +(size_t p, const const_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const const_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const const_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const const_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const const_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const const_iterator & it1, const const_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -430,18 +402,10 @@ public:
|
||||
|
||||
inline reverse_iterator(): parent(0), pos(0) {}
|
||||
|
||||
inline T & operator *() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator ->() {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline T & operator *() {return (*parent)[pos];}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline T & operator ->() {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline reverse_iterator & operator ++() {
|
||||
--pos;
|
||||
@@ -479,33 +443,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline reverse_iterator operator -(size_t p, const reverse_iterator & it) {return it - p;}
|
||||
friend inline reverse_iterator operator -(const reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline reverse_iterator operator -(size_t p, const reverse_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const reverse_iterator & it1, const reverse_iterator & it2) {
|
||||
return it2.pos - it1.pos;
|
||||
}
|
||||
|
||||
friend inline reverse_iterator operator +(size_t p, const reverse_iterator & it) {return it + p;}
|
||||
friend inline reverse_iterator operator +(const reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline reverse_iterator operator +(size_t p, const reverse_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const reverse_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const reverse_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const reverse_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const reverse_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const reverse_iterator & it1, const reverse_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -534,12 +490,8 @@ public:
|
||||
typedef std::random_access_iterator_tag iterator_category;
|
||||
|
||||
inline const_reverse_iterator(): parent(0), pos(0) {}
|
||||
inline const T & operator *() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator ->() const {
|
||||
return (*parent)[pos];
|
||||
}
|
||||
inline const T & operator *() const {return (*parent)[pos];}
|
||||
inline const T & operator ->() const {return (*parent)[pos];}
|
||||
|
||||
inline const_reverse_iterator & operator ++() {
|
||||
--pos;
|
||||
@@ -577,33 +529,25 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend inline const_reverse_iterator operator -(size_t p, const const_reverse_iterator & it) {return it - p;}
|
||||
friend inline const_reverse_iterator operator -(const const_reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp -= p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_reverse_iterator operator -(size_t p, const const_reverse_iterator & it) {
|
||||
return it - p;
|
||||
}
|
||||
friend inline std::ptrdiff_t operator -(const const_reverse_iterator & it1, const const_reverse_iterator & it2) {
|
||||
return it2.pos - it1.pos;
|
||||
}
|
||||
|
||||
friend inline const_reverse_iterator operator +(size_t p, const const_reverse_iterator & it) {return it + p;}
|
||||
friend inline const_reverse_iterator operator +(const const_reverse_iterator & it, size_t p) {
|
||||
auto tmp = it;
|
||||
tmp += p;
|
||||
return tmp;
|
||||
}
|
||||
friend inline const_reverse_iterator operator +(size_t p, const const_reverse_iterator & it) {
|
||||
return it + p;
|
||||
}
|
||||
|
||||
inline bool operator ==(const const_reverse_iterator & it) const {
|
||||
return (pos == it.pos);
|
||||
}
|
||||
inline bool operator !=(const const_reverse_iterator & it) const {
|
||||
return (pos != it.pos);
|
||||
}
|
||||
inline bool operator ==(const const_reverse_iterator & it) const {return (pos == it.pos);}
|
||||
inline bool operator !=(const const_reverse_iterator & it) const {return (pos != it.pos);}
|
||||
friend inline bool operator <(const const_reverse_iterator & it1, const const_reverse_iterator & it2) {
|
||||
return it1.pos < it2.pos;
|
||||
}
|
||||
@@ -615,7 +559,8 @@ public:
|
||||
}
|
||||
friend inline bool operator >=(const const_reverse_iterator & it1, const const_reverse_iterator & it2) {
|
||||
return it1.pos >= it2.pos;
|
||||
} };
|
||||
}
|
||||
};
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Iterator to the first element.
|
||||
@@ -626,9 +571,7 @@ public:
|
||||
//! \~russian Если массив пустой, возвращаемый итератор будет равен \a end().
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a end(), \a rbegin(), \a rend()
|
||||
inline iterator begin() {
|
||||
return iterator(this, 0);
|
||||
}
|
||||
inline iterator begin() {return iterator(this, 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Iterator to the element following the last element.
|
||||
@@ -641,16 +584,10 @@ public:
|
||||
//! попытка доступа к нему приведёт к выходу за разрешенную память.
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a begin(), \a rbegin(), \a rend()
|
||||
inline iterator end() {
|
||||
return iterator(this, piv_size);
|
||||
}
|
||||
inline iterator end() {return iterator(this, piv_size);}
|
||||
|
||||
inline const_iterator begin() const {
|
||||
return const_iterator(this, 0);
|
||||
}
|
||||
inline const_iterator end() const {
|
||||
return const_iterator(this, piv_size);
|
||||
}
|
||||
inline const_iterator begin() const {return const_iterator(this, 0);}
|
||||
inline const_iterator end() const {return const_iterator(this, piv_size);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Returns a reverse iterator to the first element of the reversed array.
|
||||
@@ -664,9 +601,7 @@ public:
|
||||
//! Если массив пустой, то совпадает с итератором \a rend().
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a rend(), \a begin(), \a end()
|
||||
inline reverse_iterator rbegin() {
|
||||
return reverse_iterator(this, piv_size - 1);
|
||||
}
|
||||
inline reverse_iterator rbegin() {return reverse_iterator(this, piv_size - 1);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Returns a reverse iterator to the element
|
||||
@@ -682,40 +617,28 @@ public:
|
||||
//! попытка доступа к нему приведёт к выходу за разрешенную память.
|
||||
//! \~\return \ref stl_iterators
|
||||
//! \~\sa \a rbegin(), \a begin(), \a end()
|
||||
inline reverse_iterator rend() {
|
||||
return reverse_iterator(this, -1);
|
||||
}
|
||||
inline reverse_iterator rend() {return reverse_iterator(this, -1);}
|
||||
|
||||
inline const_reverse_iterator rbegin() const {
|
||||
return const_reverse_iterator(this, piv_size - 1);
|
||||
}
|
||||
inline const_reverse_iterator rend() const {
|
||||
return const_reverse_iterator(this, -1);
|
||||
}
|
||||
inline const_reverse_iterator rbegin() const {return const_reverse_iterator(this, piv_size - 1);}
|
||||
inline const_reverse_iterator rend() const {return const_reverse_iterator(this, -1);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements in the container.
|
||||
//! \~russian Количество элементов массива.
|
||||
//! \~\sa \a size_s(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline size_t size() const {
|
||||
return piv_size;
|
||||
}
|
||||
inline size_t size() const {return piv_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements in the container as signed value.
|
||||
//! \~russian Количество элементов массива в виде знакового числа.
|
||||
//! \~\sa \a size(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline ssize_t size_s() const {
|
||||
return piv_size;
|
||||
}
|
||||
inline ssize_t size_s() const {return piv_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Same as \a size().
|
||||
//! \~russian Синоним \a size().
|
||||
//! \~\sa \a size(), \a size_s(), \a capacity(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline size_t length() const {
|
||||
return piv_size;
|
||||
}
|
||||
inline size_t length() const {return piv_size;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Number of elements that the container has currently allocated space for.
|
||||
@@ -724,9 +647,7 @@ public:
|
||||
//! \~english To find out the actual number of items, use the function \a size().
|
||||
//! \~russian Чтобы узнать фактическое количество элементов используйте функцию \a size().
|
||||
//! \~\sa \a reserve(), \a size(), \a size_s()
|
||||
inline size_t capacity() const {
|
||||
return piv_rsize;
|
||||
}
|
||||
inline size_t capacity() const {return piv_rsize;}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Checks if the container has no elements.
|
||||
@@ -735,9 +656,7 @@ public:
|
||||
//! \~english **true** if the container is empty, **false** otherwise
|
||||
//! \~russian **true** если контейнер пуст, **false** иначе.
|
||||
//! \~\sa \a size(), \a size_s(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline bool isEmpty() const {
|
||||
return (piv_size == 0);
|
||||
}
|
||||
inline bool isEmpty() const {return (piv_size == 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Checks if the container has elements.
|
||||
@@ -746,9 +665,7 @@ public:
|
||||
//! \~english **true** if the container is not empty, **false** otherwise
|
||||
//! \~russian **true** если контейнер не пуст, **false** иначе.
|
||||
//! \~\sa \a size(), \a size_s(), \a isEmpty(), \a isNotEmpty(), \a resize(), \a reserve()
|
||||
inline bool isNotEmpty() const {
|
||||
return (piv_size > 0);
|
||||
}
|
||||
inline bool isNotEmpty() const {return (piv_size > 0);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Tests whether at least one element in the array
|
||||
@@ -819,12 +736,8 @@ public:
|
||||
//! piCout << v; // {1, 2, 5, 9}
|
||||
//! \endcode
|
||||
//! \~\sa \a at()
|
||||
inline T & operator [](size_t index) {
|
||||
return piv_data[index];
|
||||
}
|
||||
inline const T & operator [](size_t index) const {
|
||||
return piv_data[index];
|
||||
}
|
||||
inline T & operator [](size_t index) {return piv_data[index];}
|
||||
inline const T & operator [](size_t index) const {return piv_data[index];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Read only access to element by `index`.
|
||||
@@ -836,9 +749,7 @@ public:
|
||||
//! \~russian Индекс элемента считается от `0`.
|
||||
//! Индекс элемента должен лежать в пределах от `0` до `size()-1`.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline const T & at(size_t index) const {
|
||||
return piv_data[index];
|
||||
}
|
||||
inline const T & at(size_t index) const {return piv_data[index];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Last element.
|
||||
@@ -850,12 +761,8 @@ public:
|
||||
//! \~russian Возвращает ссылку на последний элемент в массиве.
|
||||
//! Эта функция предполагает, что массив не пустой.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline T & back() {
|
||||
return piv_data[piv_size - 1];
|
||||
}
|
||||
inline const T & back() const {
|
||||
return piv_data[piv_size - 1];
|
||||
}
|
||||
inline T & back() {return piv_data[piv_size - 1];}
|
||||
inline const T & back() const {return piv_data[piv_size - 1];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Last element.
|
||||
@@ -867,12 +774,8 @@ public:
|
||||
//! \~russian Возвращает ссылку на пенрвый элемент в массиве.
|
||||
//! Эта функция предполагает, что массив не пустой.
|
||||
//! Иначе это приведёт к неопределённому поведению программы и ошибкам памяти.
|
||||
inline T & front() {
|
||||
return piv_data[0];
|
||||
}
|
||||
inline const T & front() const {
|
||||
return piv_data[0];
|
||||
}
|
||||
inline T & front() {return piv_data[0];}
|
||||
inline const T & front() const {return piv_data[0];}
|
||||
|
||||
//! \brief
|
||||
//! \~english Compare operator with array `v`.
|
||||
@@ -888,9 +791,7 @@ public:
|
||||
//! \brief
|
||||
//! \~english Compare operator with array `v`.
|
||||
//! \~russian Оператор сравнения с массивом `v`.
|
||||
inline bool operator !=(const PIVector<T> & v) const {
|
||||
return !(*this == v);
|
||||
}
|
||||
inline bool operator !=(const PIVector<T> & v) const {return !(*this == v);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Tests if element `e` exists in the array.
|
||||
@@ -1183,9 +1084,7 @@ public:
|
||||
//! memcpy(vec.data(1), a, 2 * sizeof(int));
|
||||
//! piCout << v; // {2, 12, 13, 2}
|
||||
//! \endcode
|
||||
inline T * data(size_t index = 0) {
|
||||
return &(piv_data[index]);
|
||||
}
|
||||
inline T * data(size_t index = 0) {return &(piv_data[index]);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Read only pointer to array
|
||||
@@ -1205,9 +1104,7 @@ public:
|
||||
//! memcpy(a, v.data(), a.size() * sizeof(int));
|
||||
//! piCout << a[0] << a[1] << a[2]; // 1 3 5
|
||||
//! \endcode
|
||||
inline const T * data(size_t index = 0) const {
|
||||
return &(piv_data[index]);
|
||||
}
|
||||
inline const T * data(size_t index = 0) const {return &(piv_data[index]);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Creates sub-array of this array.
|
||||
@@ -1298,9 +1195,7 @@ public:
|
||||
//! \~english Same as \a fill().
|
||||
//! \~russian Тоже самое что и \a fill().
|
||||
//! \~\sa \a fill(), \a resize()
|
||||
inline PIVector<T> & assign(const T & e = T()) {
|
||||
return fill(e);
|
||||
}
|
||||
inline PIVector<T> & assign(const T & e = T()) {return fill(e);}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english First does `resize(new_size)` then `fill(e)`.
|
||||
@@ -1832,9 +1727,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a prepend(), \a push_front(), \a push_back(), \a insert()
|
||||
inline PIVector<T> & append(const T & e) {
|
||||
return push_back(e);
|
||||
}
|
||||
inline PIVector<T> & append(const T & e) {return push_back(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1843,9 +1736,7 @@ public:
|
||||
//! \~english Overloaded function.
|
||||
//! \~russian Перегруженая функция.
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & append(T && e) {
|
||||
return push_back(std::move(e));
|
||||
}
|
||||
inline PIVector<T> & append(T && e) {return push_back(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given elements to the end of the array.
|
||||
@@ -1858,9 +1749,7 @@ public:
|
||||
//! Добавляет элементы из
|
||||
//! [списка инициализации C++11](https://ru.cppreference.com/w/cpp/utility/initializer_list).
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & append(std::initializer_list<T> init_list) {
|
||||
return push_back(init_list);
|
||||
}
|
||||
inline PIVector<T> & append(std::initializer_list<T> init_list) {return push_back(init_list);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the end of the array.
|
||||
@@ -1874,9 +1763,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & append(const PIVector<T> & v) {
|
||||
return push_back(v);
|
||||
}
|
||||
inline PIVector<T> & append(const PIVector<T> & v) {return push_back(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1888,9 +1775,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & operator <<(const T & e) {
|
||||
return push_back(e);
|
||||
}
|
||||
inline PIVector<T> & operator <<(const T & e) {return push_back(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the end of the array.
|
||||
@@ -1902,9 +1787,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & operator <<(T && e) {
|
||||
return push_back(std::move(e));
|
||||
}
|
||||
inline PIVector<T> & operator <<(T && e) { eturn push_back(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the end of the array.
|
||||
@@ -1916,9 +1799,7 @@ public:
|
||||
//! piCout << v; // {1, 2, 3, 4, 5}
|
||||
//! \endcode
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & operator <<(const PIVector<T> & v) {
|
||||
return push_back(v);
|
||||
}
|
||||
inline PIVector<T> & operator <<(const PIVector<T> & v) {return push_back(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the begin of the array.
|
||||
@@ -2004,9 +1885,7 @@ public:
|
||||
//! piCout << v; // {5, 4, 1, 2, 3}
|
||||
//! \endcode
|
||||
//! \~\sa \a append(), \a push_back(), \a push_front(), \a insert()
|
||||
inline PIVector<T> & prepend(const T & e) {
|
||||
return push_front(e);
|
||||
}
|
||||
inline PIVector<T> & prepend(const T & e) {return push_front(e);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given element `e` to the begin of the array.
|
||||
@@ -2015,9 +1894,7 @@ public:
|
||||
//! \~english Overloaded function.
|
||||
//! \~russian Перегруженая функция.
|
||||
//! \~\sa \a prepend()
|
||||
inline PIVector<T> & prepend(T && e) {
|
||||
return push_front(std::move(e));
|
||||
}
|
||||
inline PIVector<T> & prepend(T && e) {return push_front(std::move(e));}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given array `v` to the begin of the array.
|
||||
@@ -2031,9 +1908,7 @@ public:
|
||||
//! piCout << v; // {4, 5, 1, 2, 3}
|
||||
//! \endcode
|
||||
//! \~\sa \a prepend()
|
||||
inline PIVector<T> & prepend(const PIVector<T> & v) {
|
||||
return push_front(v);
|
||||
}
|
||||
inline PIVector<T> & prepend(const PIVector<T> & v) {return push_front(v);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Appends the given elements to the begin of the array.
|
||||
@@ -2046,9 +1921,7 @@ public:
|
||||
//! Добавляет элементы из
|
||||
//! [списка инициализации C++11](https://ru.cppreference.com/w/cpp/utility/initializer_list).
|
||||
//! \~\sa \a append()
|
||||
inline PIVector<T> & prepend(std::initializer_list<T> init_list) {
|
||||
return prepend(init_list);
|
||||
}
|
||||
inline PIVector<T> & prepend(std::initializer_list<T> init_list) {return prepend(init_list);}
|
||||
|
||||
//! \brief
|
||||
//! \~english Remove one element from the end of the array.
|
||||
@@ -2527,8 +2400,6 @@ inline PICout operator <<(PICout s, const PIVector<T> & v) {
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
inline void piSwap(PIVector<T> & f, PIVector<T> & s) {
|
||||
f.swap(s);
|
||||
}
|
||||
inline void piSwap(PIVector<T> & f, PIVector<T> & s) {f.swap(s);}
|
||||
|
||||
#endif // PIVECTOR_H
|
||||
|
||||
Reference in New Issue
Block a user