|
size() – valarray to‘plam ostining elementlari sonini aniqlaydi.
start()
|
bet | 54/131 | Sana | 16.06.2024 | Hajmi | 1,92 Mb. | | #264063 |
Bog'liq Tiplarni dinamik tarzdasize() – valarray to‘plam ostining elementlari sonini aniqlaydi.
start() – valarray to‘plam ostining boshlang‘ich indeksini qaytaradi stride() - valarray to‘plam ostining elementlari orasidagi masofani topadi. 6.3-dastur. Slice sinfidan foydalanish.
#include "stdafx.h"
#include #include using namespace std; int main( ){int i;
size_t sizeVA, sizeVAR; size_t startVAR, strideVAR;
valarray va(28), vaResult;
for ( i = 0 ; i < 28 ; i += 1 ) va [ i ] = (rand()%100)+1;
cout << "valarray elementlari: \n ( ";
for ( i = 0 ; i < 28 ; i++ )
cout << va[i] << '\t'; cout << ")." << endl;
sizeVA = va.size(); cout << "valarray elementlar soni: "
<< sizeVA << "." << endl << endl;
// slice konstruktori
slice vaSlice( 0, 6, 4); vaResult = va[vaSlice];
cout << "valarray toʻplam ostisi vaResult = "
<< "va[slice( 0, 6, 4)] =\n ( ";
for ( i = 0 ; i < vaSlice.size() ; i++ )
cout << vaResult [ i ] << " ";
cout << ")." << endl;
sizeVAR = vaSlice.size( );
cout << "toʻplam ostining elementlar soni: "
<< sizeVAR << "." << endl;
startVAR = vaSlice.start( );
cout << "toʻplam ostining birinchi element indeksi: "
<< startVAR << "." << endl;
strideVAR = vaSlice.stride( );
cout << "toʻplam ostining elementlari orasidagi masofa: "
<< strideVAR << "." << endl;
system("pause");}
-
6.3-dastur. output
|
valarray elementlari:
( 42 68 35 1 70 25 79 59 63
|
65 6 46 82 28 62
92 96 43 28 37 92 5 3 54
93 83 22 17 ).
valarray elementlar soni: 28.
valarray toʻplam ostisi vaResult = va[slice( 0, 6, 4)] = ( 42 70 63 82 96 92 ).
toʻplam ostining elementlar soni: 6.
toʻplam ostining birinchi element indeksi: 0. toʻplam ostining elementlari orasidagi masofa: 4.
|
Dasturga sinfga berilgan taʻrif asosida uning konstruktori 3 ta parametr qabul qilar ekan. Birinchi paramert belgilangan elementlar indeksi, ikkinchisi elementlar soni, elementlar indeksi orasidagi masofa.
Gslice sinfi. Xizmatchi sinf bo‘lib, valarray ning ko‘p o‘lchamli to‘plam ostilari bilan ishlashga mo‘ljallangan. Agar valarray massivda ko‘p o‘lchamli to‘plam sifatida qaralsa, Gslice sinfi undan ko‘p o‘lchamli vektorni oladi.
Sinf gslice_array tip bilan tavsiflanuvchi paramertlarni saqlaydi. agar valarray** tipidagi obʻyekt uchun argument sifatida class gslice obʻyekti berilgan bo‘lsa, Valarray to‘plam ostisi bilvosita qurilgan hisoblanadi. ** to‘plam osti elementlari bo‘lib, Valarray bazaviy sinfdan olingan va 3 ta paramertni qabul qiladi:
Boshlang‘ich indeks;
Vektor uzunligi valarray sinf;
Vektor qadami (elementlari orasidagi mosofa) valarray sinf; Vektorlarning uzinligi bir xil bo‘lishi kerak.
Agar to‘plam gslice bilan aniqlangan va valarray ning to‘plam ostisi bo‘lsa, gslice yangi valarray hisoblanadi. O‘zgarmas bo‘lgan Valarray uchun baholash mexanizmi vaqt va xotirani tejaydi.
boshlang‘ich va oxirgi to‘plamlar gslice bilan aniqlangan bo‘lsa, farqli, barcha indekslariga murojaat bo‘lsa, Valarray to‘plam ustidagi barcha amallar kafolatlanadi.
gslice sinfi uchun gslice konstruktori ishlatiladi. Belgilangan element bilan boshlanadigan, bir necha elementlardan iborat valarray to‘plam ostisini yaratadi.
gslice sinfining funksiyalari quyidagilar:
|
| |