Nếu tôi có một boolean và một số mã có thể thay đổi nó, và sau đó tôi muốn đặt nó là true
, tôi có nên kiểm tra xem đó là false
không?Bạn có nên kiểm tra biến trước khi đặt giá trị của nó trong C++ không?
Ví dụ:
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;
}
Đó là nhanh hơn?
Note:
tôi hỏi rằng vì việc thực hiện sau đây Sieve of Eratosthenes:. http://bloc.gerardfarras.com/wp-content/uploads/2011/12/erastotenes.txt
if ((i % divisor == 0) && (numsprimers[i] == 0)) {
numsprimers[i] = 1;
}
(Nếu numsprimers[i]==1
nó có nghĩa là i
không phải là một số nguyên tố Và nếu nó 0 nó có thể là số nguyên tố hay không)
Một cách khác để nghĩ về điều này là: "Tại sao chọn? Chỉ cần ghi đè lên!" – Mysticial
@ Thực tế tôi nhớ một chương trình đạt được tốc độ tăng rất lớn bằng cách kiểm tra giá trị boolean và sau đó ghi đè lên nó thay vì chỉ ghi đè lên nó. Tôi không có điểm chuẩn nhưng có lẽ sẽ có giá trị ... –
@SethCarnegie Đó có phải là loại do người dùng xác định không? – Mysticial