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

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • Professor Messer

    Professor Me

    27 NİSAN 2007
  • YAN TV

    YAN TV

    20 EKİM 2011