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

  • Android Authority

    Android Auth

    3 NİSAN 2011
  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • stokelycalm

    stokelycalm

    28 Aralık 2010