SORU
14 Temmuz 2013, Pazar


Sabit ve sabit olmayan anahtarı arasındaki fark nedir?

Aşağıdaki iki satır arasındaki fark nedir?

map<int, float> map_data;
map<const int, float> map_data;

CEVAP
14 Temmuz 2013, Pazar


  • int const int iki farklı türleri vardır.

  • std::map<int, float> std::map<const int, float>, benzer şekilde, farklı türleri vardır.

std::map<const int, float> std::map<int, float> arasındaki fark,,, std::map<int, float> say ve 11*;* arasındaki fark benzer bir dereceye kadarher biri için taze bir harita türü.

Olmayanconst Bu durumda, iç anahtar türühala sigara-* int*13:

std::map<const int, float>::key_type       => const int
std::map<int, float>::key_type             => int

Ancak, göster anahtarlarıanlamsaldeğişmez ve anahtarları doğrudan erişim (örneğin, value_type verimleri kaldırma kullanımına,) izin tüm işlemleri göster constmu key_type bir:

std::map<const int, float>::value_type => std::pair<const int, float>
std::map<int, float>::value_type       => std::pair<const int, float>

O kadar farkolabilirEğer uygulama izin veriyorsa önemli olan her şekilde size büyük ölçüde görünmez.

Bu her zaman böyle değil ama: standart resmengerektirircopyable ve hareketli olmak anahtar türü, ve some implementations re-use map nodes; Bu uygulamaları altında const bir anahtar kullanmaya çalışırken sadece işe yaramaz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011