SORU
27 EKİM 2009, Salı


C min ve max fonksiyonları kullanın

C min max fmin fmax üzerinde tercih edilir? İki tamsayı karşılaştırma için, temel olarak aynı işlevi sağlar mı?

Fonksiyonların bu kümeleri kullanma eğiliminde mı yoksa kendi (belki de, taşınabilirlik, esneklik, verimlilik vb. geliştirmek için) yazmayı tercih ediyorsunuz?

Notlar:

  1. C Standart Şablon Kitaplığı (STL) standart C min ve 5 *işlevleri algorithm başlık bildirir.

  2. C standardı (C99) standart C math.h başlığında fmin fmax fonksiyonu sağlar.

Şimdiden teşekkürler!

CEVAP
27 EKİM 2009, Salı


fmin fmax özellikle kayan nokta sayıları ile kullanım içindir (bu nedenle "f"). Eğer değer vermez ise, performans veya hassasiyet kayıpları, çağrı Tepegöz, vb dönüştürme fonksiyonu nedeniyle muzdarip olabilir. derleyici/platform bağlı.

std::min std::max şablon işlevleri olan iş herhangi bir türü ile bir daha az-daha (<) operatör, bu nedenle bunlar üzerinde faaliyet gösteren herhangi bir veri türü sağlar böyle bir karşılaştırma. Ayrıca eğer < çalışmak istemezsin diye kendi karşılaştırma işlevini sağlayabilir.

Bu açıkça değişkenler farklı olduğunda maç için dönüştürmek zorunda çünkü daha güvenli. Derleyici yanlışlıkla bir 64-bit kayan, örneğin 64 bitlik bir int dönüştürmek izin vermiyor. Bu nedenle yalnız şablonları varsayılan seçim yapmak gerekir. (Matthieu M & bk1e için kredi)

İle kullanılan şablon yüzerolabilirperformans kazanmak. Hep şablon işlevleri için çağrılar satır içi uygulaması seçeneği vardır bir derleyici kaynak kodu bu yana derleme biriminin bir parçasıdır. Bazenimkansızkütüphane bir işlev çağrısı satır içi, diğer yandan (bağlantı zaman yokluğu paylaşılan kitaplıkları optimizasyon, vb.).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011
  • TROPFEST

    TROPFEST

    27 Mart 2007