Se ho un booleano e del codice che forse lo cambia, e poi voglio impostarlo su true
, dovrei controllare se è false
?È meglio controllare una variabile prima di impostarne il valore in C++?
Ad esempio:
bool b = false;
// Some code
// Here "b" can be true or false
if (cond) {
b = true;
}
vs
bool b = false;
// Some code
// Here `b` can be `true` or `false`
if (cond && !b){
b = true;
}
che è più veloce?
Nota:
chiedo che a causa della seguente implementazione di Sieve of Eratosthenes:. http://bloc.gerardfarras.com/wp-content/uploads/2011/12/erastotenes.txt
if ((i % divisor == 0) && (numsprimers[i] == 0)) {
numsprimers[i] = 1;
}
(Se numsprimers[i]==1
significa che i
non è un numero primo E se è 0 è può essere primo o no)
Un altro modo di pensarlo come: "Perché controllare? Basta sovrascrivere!" – Mysticial
@Mysticial in realtà ricordo un programma che ha ottenuto un enorme aumento di velocità controllando un valore booleano e quindi sovrascrivendolo anziché sovrascrivendolo. Non ho un punto di riferimento, ma forse ne varrebbe la pena fare uno ... –
@SethCarnegie Era un tipo definito dall'utente? – Mysticial