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

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • André Frizzo

    André Frizz

    16 Aralık 2006
  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013