logo

C++ harita işlevi

Haritalar C++ STL'nin (Standart Şablon Kitaplığı) bir parçasıdır. Haritalar, her anahtarın benzersiz olduğu ve eklenebildiği veya silinebildiği ancak değiştirilemediği, sıralanmış anahtar/değer çiftini saklayan ilişkisel kaplardır. Tuşlarla ilişkili değerler değiştirilebilir.

Örneğin: Çalışan kimliğinin anahtar ve adın değer olduğu bir Çalışan haritası şu şekilde temsil edilebilir:

Anahtarlar Değerler
101 Nikita
102 Robin
103 Derin
104 John

Sözdizimi

 template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator&lt;pair"> // map::allocator_type &gt; class map; </class>

Parametre

anahtar: Haritada depolanacak anahtar veri türü.

tip: Haritada depolanacak değerin veri türü.

karşılaştırmak: Aynı bool türünden iki bağımsız değişkeni alan ve bir değer döndüren bir karşılaştırma sınıfı. Bu bağımsız değişken isteğe bağlıdır ve ikili yüklem less varsayılan değerdir.

tahsis: Ayırıcı nesnenin türü. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değer ayırıcıdır.

fabrika tasarım deseni

Harita oluşturma

Haritalar aşağıdaki ifade kullanılarak kolaylıkla oluşturulabilir:

 typedef pair value_type; 

Yukarıdaki form, anahtar tipine sahip bir harita oluşturmak için kullanılacaktır Anahtar türü ve türün değeri değer türü. Önemli bir nokta, bir haritanın anahtarının ve karşılık gelen değerlerin her zaman bir çift olarak eklenmesidir; bir haritaya yalnızca anahtarı veya yalnızca bir değeri ekleyemezsiniz.

örnek 1

 #include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } } 

Çıktı:

 Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita 

Üye İşlevleri

Haritanın tüm üye işlevlerinin listesi aşağıdadır:

İnşaatçı/Yok Edici

Fonksiyonlar Tanım
inşaatçılar Harita oluştur
muhripler Harita yıkıcı
operatör= Haritanın öğelerini başka bir haritaya kopyalayın.

Yineleyiciler

Fonksiyonlar Tanım
başlamak Haritadaki ilk öğeye işaret eden bir yineleyici döndürür.
cbaşla Haritadaki ilk öğeye işaret eden bir const yineleyici döndürür.
son Geçmiş sonu işaret eden bir yineleyici döndürür.
bir kaç Geçmiş sonu işaret eden sabit bir yineleyici döndürür.
yeniden başla Sona işaret eden bir ters yineleyici döndürür.
yapar Başlangıca işaret eden bir ters yineleyici döndürür.
başlangıç Sona işaret eden sabit bir ters yineleyici döndürür.
inanmak Başlangıca işaret eden sabit bir ters yineleyici döndürür.

Kapasite

Fonksiyonlar Tanım
boş Harita boşsa true değerini döndürür.
boyut Haritadaki öğelerin sayısını döndürür.
maksimum_boyut Haritanın maksimum boyutunu döndürür.

Öğe Erişimi

Fonksiyonlar Tanım
Şebeke[] Verilen anahtarla öğeyi alın.
en Verilen anahtarla öğeyi alın.

Değiştiriciler

Fonksiyonlar Tanım
sokmak Öğeyi haritaya ekleyin.
silmek Haritadaki öğeleri silin.
takas Haritanın içeriğini değiştirin.
temizlemek Haritanın tüm öğelerini silin.
konum Yeni öğeleri oluşturun ve haritaya ekleyin.
emplace_hint İpucuyla haritaya yeni öğeler oluşturun ve ekleyin.

Gözlemciler

Fonksiyonlar Tanım
anahtar_comp Anahtar karşılaştırma nesnesinin bir kopyasını döndürün.
değer_bileşimi Değer karşılaştırma nesnesinin bir kopyasını döndürün.

Operasyonlar

Fonksiyonlar Tanım
bulmak Verilen anahtara sahip bir öğeyi arayın.
saymak Verilen anahtarla eşleşen öğe sayısını alır.
alt sınır Bir yineleyiciyi alt sınıra döndürür.
üst sınır Bir yineleyiciyi üst sınıra döndürür.
eşit_aralık Verilen anahtarla eşleşen öğelerin aralığını döndürür.

Ayırıcı

Fonksiyonlar Tanım
get_allocator Haritayı oluşturmak için kullanılan bir ayırıcı nesnesini döndürür.

Üye Olmayan Aşırı Yüklenen İşlevler

Fonksiyonlar Tanım
operatör== İki haritanın eşit olup olmadığını kontrol eder.
operatör!= İki haritanın eşit olup olmadığını kontrol eder.
operatör< İlk haritanın diğerlerinden küçük olup olmadığını kontrol eder.
Şebeke<=< td> İlk haritanın diğerine eşit veya küçük olup olmadığını kontrol eder.
operatör> İlk haritanın diğerinden büyük olup olmadığını kontrol eder.
operatör>= İlk haritanın diğerine eşit olup olmadığını kontrol eder.
takas() İki haritanın öğesini değiştirir.