Advertisement
Guest User

2esfeladat

a guest
May 25th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  2nagyzhpot
  4. //
  5. //  Created by Reka Vihari on 2016. 05. 25..
  6. //  Copyright © 2016. Reka Vihari. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <deque>
  11.  
  12.  
  13.  
  14. //beugró
  15.  
  16.  
  17.  
  18. template<typename  T, size_t M=1000>
  19. class ModTomb: public std::deque<T>{
  20.    
  21. public:
  22.     ModTomb(size_t n, const T& vmi):std::deque<T>(n,vmi){}
  23.     ModTomb():std::deque<T>(){}
  24.     template<class Iterator>
  25.     ModTomb(Iterator first, Iterator last):std::deque<T>(first,last){}
  26.     ModTomb(int a):std::deque<T>(a){}
  27.     T& operator[](int index){
  28.  
  29.         return std::deque<T>::operator[] (index%M);}
  30.     T const& operator[] (int index)const {
  31.         return std::deque<T>::operator[] (index%M);
  32.    
  33.     }
  34.    
  35.  
  36. };
  37.  
  38. //c
  39.  
  40.  
  41.  
  42. template<class Iterator, class Predik>
  43. int count_unless(Iterator first, Iterator last, Predik p){
  44.     int darab=0;
  45.     for(Iterator i=first;i!=last;i++){
  46.         if(!p(*i)){
  47.             darab++;
  48.         }
  49.     }
  50.     return darab;
  51. }
  52.  
  53.  
  54. bool negativ(int a){ return a<0;}
  55.  
  56. class Funktor{
  57.     int adat;
  58. public:
  59.     Funktor(int a){adat=a;}
  60.     bool operator()(int b){
  61.         return adat==b;
  62.     }
  63. };
  64.  
  65. bool nullae(int b){return b==0;}
  66.  
  67. int main() {
  68.     ModTomb<int, 3> t3(3); //mod3 aritmetikával indexelhető 3 elemű tömb
  69.     t3[0]=1;
  70.     std::cout<<t3[3]<<std::endl;
  71.     t3[7]=2;
  72.     ModTomb<int, 30> t6(30);
  73.    
  74.     int sorozat[]={1,4,9,-16,25,3,72,100,3};
  75.     int eredmeny=count_unless(sorozat, sorozat+9, negativ);
  76.     std::cout<<eredmeny<<std::endl;
  77.    
  78.     int joe=count_unless(sorozat, sorozat+9,Funktor(-16));
  79.     std::cout<<joe<<std::endl;
  80.    
  81.     int nullae=count_unless(t6.begin(), t6.end(), Funktor(0));
  82.     std::cout<<nullae<<std::endl;
  83.    
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement