-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcandidati.h
81 lines (77 loc) · 1.67 KB
/
candidati.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef CANDIDATI_H
#define CANDIDATI_H
#include "costanti.h"
/**
* Classe TCandidati
* e' un contenitore in cui sono memorizzati gli stati possibili
* \author Ruggero Turra
* \date 2006
*/
class Candidati
{
private:
const int max;
bool *m_data;
void possibile(int n,bool in);
public:
/**
* Costruttore,
* Setta tutti i valori come possibili
*/
Candidati();
/**
* Costruttore,
* Setta tutti i valori come impossibili tranne n
*/
Candidati(int n);
/**
* Costruttore copia
*/
Candidati(const Candidati &old);
/**
* Distruttore
*/
~Candidati();
/** Ritorna se n e' possibile
*
*/
inline bool possibile(int n) const { return m_data[n-1]; };
/**
* Setta n come impossibile e ritorna se e' cambiato qualcosa
*/
bool togli(int n);
/**
* Setta tutti i valori come possibili
*/
void tutti_possibili();
/**
* Setta tutti i valori come impossibili tranne n
*/
void possibile_n(int n);
/**
* Dice se esiste un solo valore possibile
*/
bool determinato() const;
/**
* Dice se esiste un solo valore possibile e ne scrive il valore in n
*/
bool determinato(int &n) const;
/**
* Dice quanti candidati ci sono
*/
int quanti() const;
/**
* Dice se c'e' solo una coppia possibile e restituisce i valori
*/
bool coppia(int &a,int &b) const;
/**
* Dice quanti e quali
*/
int quali(int vet[]) const;
/**
* Confronta con un altro
*/
bool operator==(const Candidati&) const;
Candidati& operator=(const Candidati& altro);
};
#endif