0Pricing
C++ Academy · Ders

unordered_set

Karma tabanlı benzersiz ögeler

unordered_set, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. 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_set Nedir?

std::unordered_set, benzersiz öğeleri bir hash tablosunda saklar. Üyelik denetimleri ortalama olarak sabit zamanlıdır; ancak sıralı bir düzen yoktur.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> s{1, 2, 3, 2, 1};
    std::cout << s.size() << " unique values\n";
    return 0;
}

set ve unordered_set Karşılaştırması

map'lerde olduğu gibi:

  • set: sıralıdır, O(log n).
  • unordered_set: sırasızdır, ortalama O(1).

En hızlı üyelik denetimleri için unordered_set'i seçin.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<std::string> seen{"a", "b", "c"};
    std::cout << (seen.count("b") ? "yes" : "no") << '\n';
    return 0;
}

Değer Ekleme

insert() bir öğe ekler, öğe zaten varsa onu yok sayar ve .second üyesi öğenin eklenip eklenmediğini bildiren bir çift döndürür.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> s;
    auto a = s.insert(5);
    auto b = s.insert(5);
    std::cout << std::boolalpha << a.second << ' ' << b.second << '\n';
    return 0;
}

Hızlı Üyelik Denetimleri

Bir değeri daha önce görüp görmediğinizi denetlemek, klasik kullanım alanıdır. count() 0 veya 1 döndürür.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<std::string> blocked{"spam", "junk"};
    std::cout << blocked.count("spam") << '\n';
    std::cout << blocked.count("ok") << '\n';
    return 0;
}

Öğeleri Silme

erase() bir değeri kaldırır ve kaç değerin kaldırıldığını (0 veya 1) döndürür.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> s{1, 2, 3};
    s.erase(2);
    std::cout << "count 2: " << s.count(2) << '\n';
    std::cout << "size: " << s.size() << '\n';
    return 0;
}

Yinelenenleri Belirleme

Bir akıştaki ilk yinelenen değeri, değeri ekleyip mantıksal sonucu denetleyerek belirleyebilirsiniz.

#include <iostream>
#include <unordered_set>

int main() {
    int data[] = {3, 7, 1, 7, 9};
    std::unordered_set<int> seen;
    for (int x : data) {
        if (!seen.insert(x).second) {
            std::cout << "first duplicate: " << x << '\n';
            break;
        }
    }
    return 0;
}

Üzerinde Dolaşma

Üzerinde dolaşma çalışır; ancak sıra belirtilmemiştir. Herhangi bir sıraya güvenmeden öğeleri toplayın veya işleyin.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> s{10, 20, 30};
    int total = 0;
    for (int x : s) total += x;
    std::cout << "sum = " << total << '\n';
    return 0;
}

Bir Aralıktaki Yinelenenleri Kaldırma

Yinelenenleri hızlıca kaldırmak için bir aralıktan unordered_set oluşturun (sıra korunmaz).

#include <iostream>
#include <unordered_set>
#include <vector>

int main() {
    std::vector<int> v{1, 2, 2, 3, 3, 3};
    std::unordered_set<int> u(v.begin(), v.end());
    std::cout << u.size() << " unique\n";
    return 0;
}

find ve count Karşılaştırması

find(), öğeye bir yineleyici verir; böylece öğeyi daha sonra kullanabilirsiniz. count() ise yalnızca varlığını bildirir.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<std::string> s{"alpha", "beta"};
    auto it = s.find("beta");
    std::cout << (it != s.end() ? *it : "none") << '\n';
    return 0;
}

Temizleme ve Boş Olma

clear() tüm öğeleri kaldırır, empty() ise hiç öğe olup olmadığını denetler.

#include <iostream>
#include <unordered_set>

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

Küme Kesişimi

Ortak öğeleri bulmak için kümelerden birinin üzerinde dolaşın ve diğerindeki üyeliği denetleyin.

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_set<int> a{1, 2, 3, 4};
    std::unordered_set<int> b{3, 4, 5};
    for (int x : a) if (b.count(x)) std::cout << x << ' ';
    std::cout << '\n';
    return 0;
}

Hızlı Kontrol

unordered_set konusundaki anlayışınızı sınayın.

Özet

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

  • ortalama O(1) zamanlı işlemlerle benzersiz öğeleri saklar
  • garantili bir sırası yoktur
  • hızlı üyelik denetimleri ve yinelenenleri belirlemek için idealdir

Sırada, kendi özel türlerinize hash uygulamayı öğreneceksiniz.

Sıkça Sorulan Sorular

“unordered_set” dersi ücretsiz mi?

Evet — “unordered_set” 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.

“unordered_set” dersinde ne öğreneceğim?

Karma tabanlı benzersiz ögeler 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 2. dersidir.

“unordered_set” 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