//Készítette:    Gregorics Tibor
//Dátum:         2009.01.24.
//Feladat:       Halmaz típus

#ifndef _HALMAZ_
#define _HALMAZ_

#include <vector>
#include <iostream>

// Típusértékek:    0 és n közé eső természetes számokat tartalmazó halmazok
// Reprezentáció:   vector<bool> v  - n elemű logikai tömb: v[i] a.cs.a igaz, ha i eleme a halmaznak
//                  int db          - a v-beli igaz értékek száma (a halmaz elemszáma)
// Műveletek:       Halmaz(int n)   - üres halmaz létrehozása
//                  void Be(int e)  - elem berakása a halmazba
//                  int  Darab()    - halmaz számosságának lekérdezése
class Halmaz{
public:
    enum Exceptions {WrongInput};
    Halmaz(int n);
    void Be(int e);
    int  Darab() const;
    friend std::ostream& operator<<(std::ostream& o, const Halmaz &h);
private:
    std::vector<bool> v;
    int  db;
};

#endif
