File include/jlib/darray_mods.h changed (mode: 100644) (index e7e8935..9638805) |
... |
... |
namespace jl { |
38 |
38 |
template<typename T, typename G> |
template<typename T, typename G> |
39 |
39 |
struct jl::darray_unordered : darray<T, G> |
struct jl::darray_unordered : darray<T, G> |
40 |
40 |
{ |
{ |
41 |
|
using darray = darray<T, G>; |
|
42 |
|
using typename darray::grow_policy; |
|
43 |
|
using typename darray::item; |
|
44 |
|
using typename darray::begin; |
|
45 |
|
using typename darray::end; |
|
|
41 |
|
using darray_self = darray<T, G>; |
|
42 |
|
using typename darray_self::grow_policy; |
|
43 |
|
using typename darray_self::item; |
|
44 |
|
using typename darray_self::begin; |
|
45 |
|
using typename darray_self::end; |
46 |
46 |
/** |
/** |
47 |
47 |
* @brief Call function with item from iterator position, and remove it. |
* @brief Call function with item from iterator position, and remove it. |
48 |
48 |
* Same as darray::remove, but instead of moving items, |
* Same as darray::remove, but instead of moving items, |
|
... |
... |
struct jl::darray_unordered : darray<T, G> |
69 |
69 |
} |
} |
70 |
70 |
[[nodiscard]] bool insert(const T &value, size_t index) = delete; |
[[nodiscard]] bool insert(const T &value, size_t index) = delete; |
71 |
71 |
[[nodiscard]] bool insert(const T &value, T* iterator) = delete; |
[[nodiscard]] bool insert(const T &value, T* iterator) = delete; |
72 |
|
using darray::insert; |
|
|
72 |
|
using darray_self::insert; |
73 |
73 |
}; |
}; |
74 |
74 |
/** |
/** |
75 |
75 |
* @brief Dynamic-sized array which always has sorted items. |
* @brief Dynamic-sized array which always has sorted items. |
|
... |
... |
struct jl::darray_unordered : darray<T, G> |
80 |
80 |
template<typename T, typename G> |
template<typename T, typename G> |
81 |
81 |
struct jl::darray_sorted : darray<T, G> |
struct jl::darray_sorted : darray<T, G> |
82 |
82 |
{ |
{ |
83 |
|
using darray = darray<T, G>; |
|
84 |
|
using typename darray::item; |
|
|
83 |
|
using darray_self = darray<T, G>; |
|
84 |
|
using typename darray_self::item; |
85 |
85 |
|
|
86 |
86 |
/** |
/** |
87 |
87 |
* @brief Takes allocation from darray and sorts items |
* @brief Takes allocation from darray and sorts items |
|
... |
... |
struct jl::darray_sorted : darray<T, G> |
91 |
91 |
* @param p_da Pointer to darray, where allocation |
* @param p_da Pointer to darray, where allocation |
92 |
92 |
* will be taken from. This darray will be empty after. |
* will be taken from. This darray will be empty after. |
93 |
93 |
*/ |
*/ |
94 |
|
void sort_darray(darray *p_da) { |
|
|
94 |
|
void sort_darray(darray_self *p_da) { |
95 |
95 |
*this = *p_da; |
*this = *p_da; |
96 |
96 |
*p_da = {}; |
*p_da = {}; |
97 |
97 |
std::qsort(this->p_begin_allocated, this->count(), sizeof(T), |
std::qsort(this->p_begin_allocated, this->count(), sizeof(T), |
|
... |
... |
struct jl::darray_sorted : darray<T, G> |
175 |
175 |
return true; |
return true; |
176 |
176 |
} |
} |
177 |
177 |
private: |
private: |
178 |
|
using darray::insert_no_resize_check; |
|
|
178 |
|
using darray_self::insert_no_resize_check; |
179 |
179 |
}; |
}; |