29 EYLÜL 2015, Salı
Neden eşitsizlik olarak test edilir (!(a==b)) C standart kitaplığı bir sürü kod?
Bu remove
kod Kütüphanesi C standart kodu. Neden if (*first != val)
yerine if (!(*first == val))
eşitsizlik test edilir?
template <class ForwardIterator, class T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val)
{
ForwardIterator result = first;
while (first!=last) {
if (!(*first == val)) {
*result = *first;
result;
}
first;
}
return result;
}
CEVAP
29 EYLÜL 2015, Salı
Bu T tek şart operator==
uygulamak anlamına geliyor çünkü. operator!=
bir T ihtiyaç olabilir, ama genel bir fikir burada mümkün olduğu şablonun kullanıcı olarak küçük bir yük koymak gerekir ve diğer şablonlar operator==
ister.
Bunu Paylaş:
Neden Java Vector sınıfı eski veya kul...
Neden SELECT * zararlı olarak kabul ed...
Neden statik bir yöntem olarak kabul e...
Neden görünümünde hazırda açık oturum ...
Neden döngüsel başvurular zararlı olar...