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

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008
  • TomSka

    TomSka

    30 Mayıs 2006