CodeBlanks Logo Icon CodeBlanks

Özet - STL container'lar

vector, map ve set'i birleştirerek bir telefon rehberi yazarsın.

Özet - STL kapsayıcıları

Bu grupta beş temel STL kapsayıcısını öğrendin. std::vector dinamik dizi, std::list çift bağlı liste, std::map sıralı anahtar-değer, std::unordered_map karma tablo, std::set tekil sıralı kümedir.

Son görevde vector ve set'i birleştireceksin: tekrarlı öğeler içeren bir vektör oluştur, ardından ondan bir set yap. Set tekrarları yok sayar; bu yüzden boyut, tekil öğe sayısını verir. Bu, kapsayıcı birleştirmenin yaygın bir desenidir.

Uygulama Mini görev: vector ve set birleştir

std::vector<int> v; oluştur; push_back ile 1, 2, 2, 3 ekle. std::set<int> s(v.begin(), v.end()); ile set oluştur. s.size()'ı yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <vector>
#include <set>

// vektöre 1, 2, 2, 3 ekle
// vektörden set oluştur

int main() {
    // set boyutunu yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <vector>
#include <set>

int main() {
    std::vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(2);
    v.push_back(3);
    std::set<int> s(v.begin(), v.end());
    std::cout << s.size() << std::endl;
    return 0;
}

Beklenen çıktı

3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hızlı O(1) erişim ve sıralama önemli değilse hangi kapsayıcı?

main.cpp
// anahtar-değer, sıralama önemli değil
  • std::map
  • std::set
  • std::list
  • std::unordered_map Doğru cevap

Açıklama: unordered_map ortalama O(1) erişim sunar; sıralama yoktur.

2 Kapsayıcıyı özelliğe eşle

Kavram Anlamı
std::vector Dinamik dizi
std::list Çift bağlı liste
std::map Sıralı anahtar-değer
std::set Tekil sıralı

3 Anahtar-değer kapsayıcı

Soru
std::____<std::string, int> m;
Cevap
std::map<std::string, int> m;

Açıklama: std::map<std::string, int> m; sıralı anahtar-değer kapsayıcısıdır.

Orta seviye bölümündeki tüm dersler