SORU
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ş:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • metagamers

    metagamers

    13 Mayıs 2006
  • FF Radioo

    FF Radioo

    14 ŞUBAT 2007