Harjutusülesanded
1. Liitmise piiramine
Loo funktsioonimall nimega liidaJaPiira
, millel on kaks malliparameetrit. Esimene neist on tüübiparameeter T
, teine täisarv N
vaikimisi väärtusega 10. Funktsioonil endal on kaks parameetrit tüübiga T
ja funktsioon tagastab antud parameetrite summa juhul, kui see on väiksem kui teine malli parameeter. Vastasel juhul tagastada malli teise parameetri väärtus.
Näide funktsiooni poole pöördumisest:
int main() { std::cout << liidaJaPiira( 4 , 1 ) << '\n' ; std::cout << liidaJaPiira( 10 , 100 ) << '\n' ; std::cout << liidaJaPiira< int , 0 >( 0 , 1 ) << '\n' ; return 0 ; } |
Väljund:
5 10 0 |
2. Elementide salvestaja
Loo funktsioonimall tüübiparameetriga T
, mille signatuur on järgmine: void looFailJaKirjuta(filesystem::path asukoht, T elemendid[], size_t arv)
. Funktsioon peab avama väljundfaili antud asukohale ning kirjutama sinna teises parameetris antud elemendid. Kolmas parameeter määrab elementide arvu. Kui faili ei eksisteeri, peab funktsioon selle looma.
Näide:
int main() { auto asukoht = filesystem::path( "elemendid.txt" ); string elemendid[] = { "üks" , "kaks" , "kolm" }; looFailJaKirjuta<string>(asukoht, elemendid, 3 ); } |
Faili elemendid.txt sisu:
üks kaks kolm |