Özet - STL container'lar
- C++ kursu
- Orta seviye
- Ders 58/116
- 5 dk
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
#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
#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ı?
// 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ı
std::____<std::string, int> m;
std::map<std::string, int> m;
Açıklama: std::map<std::string, int> m; sıralı anahtar-değer kapsayıcısıdır.