gslice_array класының шаблоны тағайындалған, ол дəл
slice_array шаблонындағыдай
элементтер жиынтығын қамтиды.
gslice_array класының өзіндік
объектілерін құруға тыйым салынған: оларға бағытталған барлық хабарласу-
лар бастапқы жиымке қайта адрестеледі.
Егер индекстердің өзгеру заңын сипаттауға болмайтын жиым үшін оның
элементтерінің кездейсоқ ішкі жиынын беру қажет болса,
valarray болып табылатын
mask_array логикалық жиымын қолданады. Осы жиымның
true мəнін қабылдайтын элементі
valarray класының сəйкес элементі
ішкі жиымға қосылатынын білдіреді.
mask_array үшін дəл
gslice_array класындағы тəрізді өрістер мен əдістердің жиынтығы анықталған.
Бұл кластың объектілері осының алдындағы бөлімде сипатталған
valarray жалпыланған индекстеу операцияларында қолдану нəтижесінде жасалады:
bool m[] = {true, true, false, true, false}; valarray mask (m, 5); // v6 жиымының 0, 1 жəне 2 нөмірлі элементтеріне // алдыңғы бөлімде сипатталған v4 жиымының сəйкес // элементтері синусының мəні меншіктеледі: valarray v6 = sin(v4[mask]); valarray элементтерін қайта реттеуге мүмкіндік беретін, кездейсоқ
ішкі жиынды бөліп алудың басқа тəсілі
indirect_array жанама жиымын
қолдану болып табылады. Мұнда жиым индекстерінің тізбегі беріледі. Бұл
27-1140
410 кластың объектісі индекс ретінде
valarray шамасын қолдану
кезінде құрылады, мысалы:
int i[] = {3, 2, 4, 0, 1}; valarray index(i, 5); valarray v7 = v4[index]; // v7[0] = v4[3], v7[1] = v4[2], v7[2] = v4[4],