SORU
1 EKİM 2013, Salı


::std dynarray vs std::vector

C 14 std::dynarray hediyeler:

::std dynarray bir dizi içeren bir dizi kapsayıcı. inşaat sabittir ve değişmez ölçü boyunca nesnenin ömür boyu.

std::dynarray çalışma zamanı std::vector Aynı olarak ayrılması gerekir.

Yararları ve daha dinamik olan std::vector (yeniden boyutlandırılabilir) std::dynarray kullanımı nedir?

CEVAP
1 EKİM 2013, Salı


Yararları ve daha dinamik olan std::vector kullanabileceğimiz zaman std::dynarray, kullanımı (Yeniden boyutlandırılabilir) nedir?

dynarray boyut ve kapasite değerleri ayrı yönetmek için ihtiyacı yok, çünkü vector, daha küçük ve daha basittir, ve bir ayırıcı saklamak gerekmez.

Ancak ana performans yararı uygulamalar dynarray mümkün olduğunda yığın tahsis etmelidirler aslında, herhangi bir yığın ayırma görmezden gelmek için tasarlanmıştır. örneğin

std::dynarray<int> d(5);   // can use stack memory for elements
auto p = new std::dynarray<int>(6);  // must use heap memory for elements

Bu optimizasyonu derleyici işbirliği gerektirir, saf bir kütüphane türü olarak uygulanabilir ve gerekli derleyici sihirli uygulanmadı ve kimse yapmak için nasıl emin. Çünkü eksikliği uygulama deneyimi, C Komitesi toplantısı Chicago'da geçen hafta karar verildi çekin std::dynarray C 14 ve sorun için ayrı bir dizi uzantıları TH (teknik şartname) belge tanımlama std::experimental::dynarray ve diziler çalışma zamanı bağlı bel ağrısı, benzer C99 VLAs.) Bu std::dynarray neredeyse kesinlikle C 14 kullanılmayacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • bored before i even began

    bored before

    30 Mart 2009