cshift()- berilgan son qiymat bo‘yicha indeks asosida massivni aylana shaklida surib yangi massiv qaytaradi. Agar son musbat bo‘lsa chapga suriladi, manfiy bo‘lsa, o‘nga suriladi.
6.3-dastur. shift() va cshift()dan foydalanish.
#include "stdafx.h" #include #include using namespace std; int main(){
int myints[] = { 5, 25, 55, 85, 115 };
valarray varr (myints, sizeof(myints)/sizeof(myints[0])); valarray varr_one, varr_two;
cout << "Massivning eski qiymatllar: ";
for (int &x: varr_one) cout << '\t' << x; cout << endl;
Yuqorida keltirilgan operatorilar Valarray sinfining funksiyalari hisoblandi.
Valarray tiplari bilan bajariladigan amallarni qayta aniqlash mumkin. Bunda birinchi amal Valarray tipi = Valarray tipi * Valarray tipi, ikkinchi amal Valarray tipi = oddiy tip * Valarray tipi, uchinchi tip Valarray tipi = Valarray tipi* oddiy tip ketma ketligi asosida aniqlangan.
[*] - amalini qayta aniqlash:
Slice sinfi.Bu - xizmatchi sinf bo‘lib, valarray sinfning merosxo‘ridir va bir o‘lchovli to‘plam ostilarni yaratishda ishlatiladi. Agar valarray massivni ikki o‘lchovli matritsa sifatida qarasak, undan bir o‘lchovli vektorni hosil qilish mumkin.
Bu sinf slice_array tipdagi obʻyektni tavsiflovchi parametrlarni saqlaydi. Agar to‘plam osti bilvosita yaratilgan valarray sinf tipida bo‘lsa, sinf obʻyekti
valarray obʻyekti uchun argument sifatida ko‘rsatiladi. To‘plam ostida saqlanadigan qiymatlar valarray tipini oladi va quyidagi xususiyatlarni o‘z ichiga oladi:
valarraydagi boshlang‘ich indeks.
massivning umumiy uzunligi va undagi elementlar soni;
valarray elementlarning ketma-ket indekslari orasidagi qadam yoki masofani aniqlash.
Agar qism to‘plam yordamida aniqlangan massiv doimiy valarrayning kichik bo‘lagi bo‘lsa, bu massiv yangi valarraydir. Doimiy valarray tipidagi to‘plam bir qism to‘plam yordamida aniqlangan bo‘lsa, dastlabki valarray uchun mos havolalar semantikasidir. O‘zgarmas bo‘lgan valarray lar uchun baholash mexanizmi vaqt va xotira sarflaydi.
Qism to‘plam asosida aniqlangan bo‘lsa va farqlansa, barcha elementlariga murojaat bo‘lsa, valarray tipidagi massivlar uchun amallar bajarilishi kafolatlanadi. Slice sinfi uchun Slice konstruktori ishlatiladi. Bir-biridan bir xil masofada bo‘lgan va belgilangan element bilan boshlanadigan, bir necha elementlardan
iborat valarray bir to‘plam ostisini yaratadi.
Slice sinfining funksiyalari quyidagilar: