0Pricing
C++ Academy · Ders

std::map

Sıralı anahtar-değer depolama

std::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.

std::map Nedir?

std::map, anahtar-değer çiftlerini anahtara göre sıralı biçimde depolar. Her anahtar tektir; aramalar, eklemeler ve silmeler logaritmik zamanda gerçekleştirilir.

  • Anahtarlar sıralı düzende tutulur.
  • Dengeli bir ikili arama ağacı temel alınır.
#include <iostream>
#include <map>

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

Öğe Ekleme

operator[], insert() veya emplace() ile ekleme yapabilirsiniz. Eksik bir anahtar üzerinde [] kullanmak, anahtarı varsayılan bir değerle oluşturur.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m;
    m["one"] = 1;
    m.insert({"two", 2});
    m.emplace("three", 3);
    std::cout << m.size() << " entries\n";
    return 0;
}

Sıralı Yineleme

Bir std::map üzerinde yineleme yapmak, anahtarları artan sırada ziyaret eder. Her öğe, .first (anahtar) ve .second (değer) alanlarına sahip bir std::pair'dir.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m{{"banana", 3}, {"apple", 5}, {"cherry", 1}};
    for (const auto& p : m) {
        std::cout << p.first << " = " << p.second << '\n';
    }
    return 0;
}

Anahtarları Bulma

Bir anahtarı güvenli biçimde aramak için find() kullanın. Bu işlev öğeye yönelik bir yineleyici, bulunamazsa end() döndürür.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m{{"x", 10}, {"y", 20}};
    auto it = m.find("y");
    if (it != m.end()) {
        std::cout << "Found y = " << it->second << '\n';
    } else {
        std::cout << "Not found\n";
    }
    return 0;
}

Varlık Denetimi

Bir anahtarın onu oluşturmadan var olup olmadığını denetlemek için count() (0 veya 1 döndürür) ya da C++20'de contains() kullanın.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m{{"a", 1}};
    std::cout << m.count("a") << '\n';
    std::cout << m.count("z") << '\n';
    return 0;
}

Değerleri Güncelleme

Bir anahtara yeniden değer atamak, değerini yerinde günceller. Map, her anahtar için yalnızca bir değer tutar.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> score;
    score["player"] = 10;
    score["player"] += 5;
    std::cout << score["player"] << '\n';
    return 0;
}

Öğeleri Silme

erase(), bir öğeyi anahtarına veya yineleyicisine göre kaldırır. Bir anahtar verildiğinde kaldırılan öğelerin sayısını döndürür.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m{{"a", 1}, {"b", 2}, {"c", 3}};
    m.erase("b");
    std::cout << m.size() << " left\n";
    for (const auto& p : m) std::cout << p.first << ' ';
    std::cout << '\n';
    return 0;
}

at() Kullanımı

at(), bir anahtarın değerine başvuru döndürür ve anahtar eksikse std::out_of_range fırlatır. []'den farklı olarak hiçbir zaman ekleme yapmaz.

#include <iostream>
#include <map>

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

Sözcük Sıklığını Sayma

std::map'in klasik bir kullanımı oluşumları saymaktır. [] işleci yeni anahtarları varsayılan olarak 0 değerine başlatır; bu nedenle ++ doğrudan çalışır.

#include <iostream>
#include <map>
#include <string>

int main() {
    std::string words[] = {"cat", "dog", "cat", "bird", "dog", "cat"};
    std::map<std::string, int> freq;
    for (const auto& w : words) freq[w]++;
    for (const auto& p : freq) std::cout << p.first << ": " << p.second << '\n';
    return 0;
}

Yapılandırılmış Bağlamalar

C++17, her çifti yapılandırılmış bağlamalar ile açmanıza ve anahtar ile değer için okunabilir adlar vermenize olanak tanır.

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> m{{"red", 1}, {"green", 2}};
    for (const auto& [name, value] : m) {
        std::cout << name << " -> " << value << '\n';
    }
    return 0;
}

Boşluk Denetimi

empty() map'in hiç öğesi olup olmadığını bildirir; clear() ise tüm öğeleri tek seferde kaldırır.

#include <iostream>
#include <map>

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

Kısa Kontrol

std::map sıralamasını anlayıp anlamadığınızı test edin.

Özet

std::map'in:

  • değerlere eşlenen benzersiz, sıralı anahtarları depoladığını
  • insert, [], find, count, at ve erase işlemlerini desteklediğini
  • yapılandırılmış bağlamalar aracılığıyla açabileceğiniz çiftlerle artan anahtar sırasına göre yineleme yaptığını

öğrendiniz. Sırada yalnızca sıralı ve benzersiz değerleri depolamak için std::set'i göreceksiniz.

Sıkça Sorulan Sorular

“std::map” dersi ücretsiz mi?

Evet — “std::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::map” dersinde ne öğreneceğim?

Sıralı anahtar-değer depolama 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::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::map
  2. std::set
  3. multimap ve multiset
  4. Özel Karşılaştırıcılar
← C++ Academy Sayfasına Dön