0Pricing
C++ Academy · Ders

std::unordered_map

Karma tabanlı hızlı arama

std::unordered_map, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

unordered_map Nedir?

std::unordered_map, anahtar-değer çiftlerini bir hash tablosunda saklar. Arama, ekleme ve silme işlemleri ortalama olarak sabit zamanlıdır; ancak öğelerin sıralı bir düzeni yoktur.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> ages;
    ages["Alice"] = 30;
    ages["Bob"] = 25;
    std::cout << ages["Alice"] << '\n';
    return 0;
}

map ve unordered_map Karşılaştırması

İhtiyaçlarınıza göre seçim yapın:

  • map: sıralıdır, işlemler O(log n) zamanında gerçekleşir.
  • unordered_map: sırasızdır, işlemler ortalama O(1) zamanında gerçekleşir.

Yalnızca hızlı aramalara ihtiyacınız varsa unordered_map kullanın.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<int, std::string> m{{3, "c"}, {1, "a"}, {2, "b"}};
    std::cout << m.size() << " entries (order not guaranteed)\n";
    return 0;
}

Ekleme ve Güncelleme

map ile aynı API'yi kullanır: [], insert() veya emplace() kullanın.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m;
    m["x"] = 1;
    m.insert({"y", 2});
    m.emplace("z", 3);
    std::cout << m.size() << '\n';
    return 0;
}

find ile Arama

find() bir yineleyici veya end() döndürür. Bu, [] operatörünün yapacağı gibi varsayılan bir değeri yanlışlıkla eklemenizi önler.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m{{"a", 1}};
    auto it = m.find("a");
    if (it != m.end()) std::cout << it->second << '\n';
    std::cout << "size: " << m.size() << '\n';
    return 0;
}

Varlığı Denetleme

count() 0 veya 1 döndürür; C++20 ise anlaşılır bir mantıksal denetim için contains() işlevini ekler.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m{{"key", 99}};
    std::cout << m.count("key") << '\n';
    std::cout << m.count("missing") << '\n';
    return 0;
}

Üzerinde Dolaşma

Üzerinde dolaşabilirsiniz; ancak sıra belirtilmemiştir. Sıralı veya ekleme sırasına göre olacağına asla güvenmeyin.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m{{"a", 1}, {"b", 2}, {"c", 3}};
    int total = 0;
    for (const auto& [k, v] : m) total += v;
    std::cout << "sum = " << total << '\n';
    return 0;
}

Silme

erase(), anahtara göre siler ve silinen öğe sayısını döndürür.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m{{"a", 1}, {"b", 2}};
    m.erase("a");
    std::cout << m.count("a") << ' ' << m.size() << '\n';
    return 0;
}

Sıklıkları Hızlı Sayma

Sıralamanın önemli olmadığı büyük veri kümelerinde unordered_map, sıklıkları map'ten daha hızlı sayar.

#include <iostream>
#include <unordered_map>
#include <string>

int main() {
    std::string items[] = {"a", "b", "a", "c", "b", "a"};
    std::unordered_map<std::string, int> freq;
    for (const auto& s : items) freq[s]++;
    std::cout << "a appears " << freq["a"] << " times\n";
    return 0;
}

at() Kullanımı

at() bir başvuru döndürür ve eksik bir anahtar için std::out_of_range fırlatır; hiçbir zaman ekleme yapmaz.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m{{"score", 42}};
    std::cout << m.at("score") << '\n';
    return 0;
}

[] ile Varsayılan Ekleme

Eksik bir anahtara [] ile erişmek, anahtarı değerle başlatılmış bir değerle (int'ler için 0) ekler. Dikkatli olun; map'i sessizce büyütür.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> m;
    std::cout << m["new"] << '\n';
    std::cout << "size: " << m.size() << '\n';
    return 0;
}

Map'i Temizleme

clear() tabloyu boşaltır, empty() ise hiç öğe bulunup bulunmadığını bildirir.

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<int, int> m{{1, 1}, {2, 2}};
    m.clear();
    std::cout << std::boolalpha << m.empty() << '\n';
    return 0;
}

Hızlı Kontrol

unordered_map sıralaması konusundaki anlayışınızı sınayın.

Özet

std::unordered_map için şunları öğrendiniz:

  • ortalama O(1) zamanlı işlemler için bir hash tablosu kullanır
  • garantili bir sırası yoktur
  • map ile aynı API'yi paylaşır (find, count, at, erase)

Sırada, hızlı ve benzersiz öğe saklama için unordered_set'i göreceksiniz.

Sıkça Sorulan Sorular

“std::unordered_map” dersi ücretsiz mi?

Evet — “std::unordered_map” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“std::unordered_map” dersinde ne öğreneceğim?

Karma tabanlı hızlı arama C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“std::unordered_map” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. std::unordered_map
  2. unordered_set
  3. Özel Karma İşlevleri
  4. Performans Değerlendirmeleri
← C++ Academy Sayfasına Dön