4template <
class TYPE,
class ARG_TYPE = const TYPE &,
class ALLOCATOR = allocator::nodef < TYPE >, ::enum_type t_etypeContainer = e_type_element >
5inline auto & __array_object(::base_array < TYPE, ARG_TYPE, TYPED, MEMORY, t_etypeContainer > & a, ::collection::index i);
8template <
typename ARRAY_TYPE,
typename T >
9inline auto & __array_object(::pointer_array_process < ARRAY_TYPE, T > & a, ::collection::index i);
16 template <
class TDST,
class TSRC >
17 ::collection::count copy(pointer_array < TDST > & dsta,
const pointer_array < TSRC > & srca);
20 template <
class A,
class T >
35 template <
class TDST,
class TSRC >
36 ::collection::count copy(address_array < TDST > & dsta,
const address_array < TSRC > & srca);
38 template <
class TDST,
class TSRC >
39 ::collection::count ptrcopy(TDST & dsta,
const TSRC & srca);
49 template <
class TDST,
class TSRC >
50 ::collection::count copy(TDST & dsta,
const TSRC & srca);
52 template <
typename CONTAINER,
class TYPE >
53 bool contains_item(
const CONTAINER & container,
const TYPE & t);
93 template <
class TINTERSECTION,
class TDST,
class TSRC >
94 void intersection(TINTERSECTION & intersection,
const TDST & dsta,
const TSRC & srca);
102 while(a.get_count() > 0)
105 ::collection::index i = (index) (rand() % a.get_size());
106 b.add(a.element_at(i));
117 typename A::BASE_TYPE pick_random(A & a)
120 ::collection::index i = (index)(rand() % a.get_size());
122 return a.element_at(i);
128 typename A::BASE_TYPE pop_random(A & a)
131 ::collection::index i = (index)(rand() % a.get_size());
133 auto matter = a.element_at(i);
142 template <
class A,
class TYPE >
143 ::collection::count populate(A & a, TYPE start, TYPE end, TYPE step,
bool bIncludeStart =
true,
bool bIncludeEnd =
true,
bool bIncludeEndOnStep =
true)
146 ::collection::count count = 0;
259 if(bIncludeEndOnStep)
298 template <
typename ARRAY >
299 ::collection::index find_first(
const ARRAY & a,
typename ARRAY::BASE_ARG_TYPE t,index(* pfnCompare)(
typename ARRAY::BASE_ARG_TYPE,
typename ARRAY::BASE_ARG_TYPE),index find = 0,index last = -1)
305 find += a.get_count();
312 last += a.get_count();
316 for(; find <= last; find++)
319 if (pfnCompare((
typename ARRAY::BASE_ARG_TYPE)a.element_at(find), (
typename ARRAY::BASE_ARG_TYPE)t) == 0)
333 template <
typename T >
334 inline bool are_all_elements_equal(
const pointer_array < T > & a1,
const pointer_array < T > & a2)
337 if (a1.get_count() != a2.get_count())
344 for (::i32 i = 0; i < a1.get_count(); i++)
347 if (a1.at(i) != a2.at(i))
365 template <
typename A >
366 bool ci_is(
const A & a,
const typename A::BASE_TYPE & t)
372 if (::case_insensitive_ansi_compare(i, t))
385 template <
typename A >
414 void array_merge(A & a,
const A & a1,
const A & a2)
420 void array_makecombination(pointer_array < A > & comb,
const A & a, A blindprefixa = A(), ::collection::index idx = 0)
422 comb.
add(allocateø A(blindprefixa));
423 for(::collection::index i = idx; i < a.get_count(); i++)
425 array_makecombination(comb, a, blindprefixa + make_array < A > (a[i]), i + 1);
443 template <
class A,
class A2D >
444 void array_permute(A2D & perm,
const A & a);
447 void array_permute(pointer_array < A > & perm,
const A & a);
449 CLASS_DECL_ACME string_array_base x1_decode_ida(const ::scoped_string & scopedstr);
451 CLASS_DECL_ACME
string x1_encode_ida(
const string_array_base & stra);
455 void x1_on_erase(
const A & a,
typename A::BASE_TYPE & n)
457 ::collection::count c = 0;
458 for (::collection::index i = 0; i < a.get_size(); i++)
482 template <
typename Type,
typename RawType, ::enum_type t_etypeContainer >
483 ::collection::index add(string_base_array < Type, RawType, t_etypeContainer > & array,
const Type & psz)
486 auto iIndex = __index(array.m_nSize);
488 array.set_at_grow(iIndex, psz);
495 template <
typename Type,
typename RawType, ::enum_type t_etypeContainer >
496 ::collection::index add(string_base_array < Type, RawType, t_etypeContainer > & array, const ::payload & payload);
499 template <
typename Type,
typename RawType, ::enum_type t_etypeContainer >
500 ::collection::index unfold_add(string_base_array < Type, RawType, t_etypeContainer > & array, const ::payload & payload);
502 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
503 ::collection::count ensure_sequence(::numeric_array < TYPE, t_etypeContainer > & a, TYPE start, TYPE end, TYPE increment = 1);
505 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
506 ::collection::count append_sequence(::numeric_array < TYPE, t_etypeContainer > & a, TYPE iterator, TYPE end, TYPE increment = 1);
508 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
509 ::collection::count set_sequence(::numeric_array < TYPE, t_etypeContainer > & a, TYPE start, TYPE end, TYPE increment = 1);
511 template<
class ARRAY>
512 bool binary_search(ARRAY & a,
typename ARRAY::BASE_ARG_TYPE t,::collection::index & iIndex,index(* fCompare) (
typename ARRAY::BASE_ARG_TYPE,
typename ARRAY::BASE_ARG_TYPE));
514 template<
class ARRAY>
515 bool binary_search(ARRAY & a,
typename ARRAY::BASE_ARG_TYPE t, ::collection::index & iIndex, less_predicate_base < typename ARRAY::BASE_ARG_TYPE > * pcompare, index_array & ia);
517 template<
class ARRAY>
518 ::collection::index sort_add(ARRAY & a,
typename ARRAY::BASE_ARG_TYPE t, index(*fCompare) (
typename ARRAY::BASE_ARG_TYPE,
typename ARRAY::BASE_ARG_TYPE), index_array & ia);
520 template<
class ARRAY,
class ARRAY2>
521 ::collection::count sort_add_array(ARRAY & a, ARRAY2 & a2, index(*fCompare) (
typename ARRAY::BASE_ARG_TYPE,
typename ARRAY::BASE_ARG_TYPE), index_array & ia);
523 template<
class ARRAY>
524 inline typename ARRAY::BASE_TYPE pop(ARRAY & a, ::collection::index n = -1);
526 template<
class ARRAY>
527 inline void pop_back(ARRAY & a, ::collection::index n = -1);
529 template<
class ARRAY>
530 inline ::collection::index push(ARRAY & a,
typename ARRAY::BASE_ARG_TYPE newElement, ::collection::index n = 0);
532 template<
class ARRAY>
533 inline void push_back(ARRAY & a,
typename ARRAY::BASE_ARG_TYPE newElement, ::collection::index n = 0);
535 template<
class TARGET,
class SOURCE> inline ::collection::index add(TARGET & target,
const SOURCE & source)
538 return target.add(source);
543 template <
typename ARRAY1,
typename ARRAY2>
544 inline ::collection::index add_array(ARRAY1 & array1,
const ARRAY2 & array2)
547 ::collection::index i = -1;
549 for (
auto & item : array2)
552 ::collection::index iItem = array1.add_item(item);
568 template <
typename ARRAY1,
typename ARRAY2>
569 inline ::collection::index unfold_array(ARRAY1 & array1,
const ARRAY2 & array2)
572 ::collection::index i = -1;
574 for (
auto & item : array2)
577 ::collection::index iItem = add(array1, item);
593 inline ::collection::index add(string_array_base & stra, const ::scoped_string & scopedstr);
594 inline ::collection::index add(string_array_base & stra, const ::i8 & ch);
595 inline ::collection::index add(string_array_base & stra,
const ansi_string & str);
596 inline ::collection::index add(string_array_base & stra,
const wide_string & str);
597 inline ::collection::index add(string_array_base & stra, const ::file::path & path);
598 inline ::collection::index add(string_array_base & stra, const ::payload & payload);
599 inline ::collection::index add(string_array_base & stra, const ::property & property);
600 inline ::collection::index add(string_array_base & stra, const ::property_set & propertyset);
602 inline ::collection::index add(::file::path_array & patha, const ::scoped_string & scopedstr);
604 inline ::collection::index add(string_array_base & stra,
const string_array_base & straSource);
606 inline ::collection::index add(::file::path_array & patha,
const string_array_base & stra);
607 inline ::collection::index add(::file::path_array & patha, const ::file::path_array & pathaSrc);
608 inline ::collection::index add(::file::path_array & patha, const ::file::listing & listing);
610 template <
typename T >
611 inline bool are_all_elements_equal(
const pointer_array < T > & a1,
const pointer_array < T > & a2);
614 template <
typename T1,
typename T2>
615 inline bool contains_array(
const T1 & t1,
const T2 & t2);
618 template <
typename T1,
typename T2>
619 inline ::collection::count erase_array(T1 & t1, T2 && t2);
622 template <
typename T1,
typename T2>
623 inline bool equals_non_unique_unordered(
const T1 & t1,
const T2 & t2)
626 return ::papaya::array::contains_array(t1, t2) && ::papaya::array::contains_array(t2, t1);
630 template <
typename A,
typename PTRA >
631 void ptra(PTRA & ptra,
const A & a)
634 for (
auto & item : a)
637 ptra.add((
typename PTRA::BASE_TYPE) item);
644 template <
typename A >
645 ::array < const_char_pointer > psza(
const A & a)
648 ::array < const_char_pointer > pa;
659 template <
typename A,
typename PA >
660 void copy_points(A & a,
const PA * pa, ::collection::count c);
668 template <
typename A >
669 ::collection::count predominant_column_count(A & a);
674 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
675 ::collection::count erase_greater_than(::numeric_array < TYPE, t_etypeContainer > & a, TYPE hi);
678 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
679 ::collection::count erase_greater_than_or_equal(::numeric_array < TYPE, t_etypeContainer > & a, TYPE hi);
682 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
683 ::collection::count erase_lesser_than(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo);
686 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
687 ::collection::count erase_lesser_than_or_equal(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo);
690 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
691 ::collection::count erase_lesser_than_or_greater_than(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo, TYPE hi);
694 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
695 ::collection::count erase_lesser_than_or_greater_than_or_equal(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo, TYPE hi);
698 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
699 ::collection::count erase_lesser_than_or_equal_or_greater_than(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo, TYPE hi);
702 template <
typename TYPE, ::enum_type t_etypeContainer = e_type_element >
703 ::collection::count erase_lesser_than_or_equal_or_greater_than_or_equal(::numeric_array < TYPE, t_etypeContainer > & a, TYPE lo, TYPE hi);
::collection::index add(const pointer< T > &p)
consumes a referer
Definition pointer_array.h:226
include "aura/graphics/image/context.h"
Definition aaaa__defer.h:32