Küme Üzerinde Yineleme
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 39 / 56.
Artık bir kümeye öğe ekleyebildiğinize, öğeleri kontrol edebildiğinize ve kaldırabildiğinize göre, bir kümedeki tüm öğeler üzerinde nasıl yineleme yapacağınızı öğrenelim. Aralık tabanlı for döngüsü, her öğeyi ziyaret etmenin en temiz yolunu sunar.
Bir set üzerinde şu şekilde döngü kurabilirsiniz:
std::set<std::string> fruits = {"banana", "apple", "cherry"};
for (const std::string& fruit : fruits) {
std::cout << fruit << std::endl;
}Hatırlanması gereken en önemli özellik, kümelerin sıralanmış düzeni otomatik olarak korumasıdır. Yukarıdaki meyveler kümesi üzerinde yineleme yaptığınızda çıktı, onları eklediğiniz sırada değil, "apple", "banana", "cherry" olacaktır. Bu otomatik sıralama, std::set kullanmanın temel avantajlarından biridir.
Bu sıralı yineleme, verileri manuel olarak sıralamaya gerek kalmadan alfabetik veya sayısal sırada görüntülemek için kümeleri (sets) mükemmel kılar. Sayılarla, dizelerle (strings) veya diğer karşılaştırılabilir türlerle çalışıyor olun, küme bunları her zaman doğal sıralı dizilerinde sunacaktır.
Görev
KolayKelimeleri bir kümeye ekleyip ardından alfabetik sırayla görüntülemek için üzerinde yineleme yaparak std::set otomatik sıralama özelliğini gösteren bir program oluşturun. Bu görev, kümelerle aralık tabanlı for döngülerini nasıl kullanacağınızı ve kümelerin sıralı düzeni nasıl koruduğunu anlama becerinizi test edecektir.
Aşağıdaki girdiler sağlanacaktır:
- Kümeye eklenecek kelime sayısını temsil eden bir tam sayı
n - Ardından kümeye eklenecek kelimeleri temsil eden
ndize
Programınız şunları yapmalıdır:
- Boş bir
std::set<std::string>oluşturun - Eklenecek kelime sayısını okuyun
- Her kelimeyi okumak ve
.insert()yöntemini kullanarak kümeye eklemek için bir döngü kullanın - Küme üzerinde yineleme yapmak ve her kelimeyi yazdırmak için aralık tabanlı bir for döngüsü kullanın
- Tüm kelimeleri yazdırdıktan sonra kümedeki benzersiz kelimelerin toplam sayısını görüntüleyin
Aşağıdaki tam çıktı biçimini kullanın:
Kümedeki her kelime için (alfabetik sırayla):
[word]Sonunda özet:
Total unique words: [count]Kümedeki tüm öğeler üzerinde yineleme yapmak için for (const std::string& word : wordSet) söz dizimine sahip aralık tabanlı bir for döngüsü kullanın. Küme, std::set kullanmanın temel avantajlarından birini göstererek kelimeleri otomatik olarak alfabetik sırada sunacaktır. Girdide yinelenen kelimeler sağlanırsa bunların küme tarafından otomatik olarak yok sayılacağını ve bu nedenle yalnızca benzersiz kelimelerin görüntüleneceğini unutmayın.
Kendin dene
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
// Kelime sayısını oku
int n;
cin >> n;
// Kelimeleri saklamak için boş bir küme oluştur
set<string> wordSet;
// YAPILACAK: Kodunuzu buraya yazın
// n adet kelimeyi oku ve bunları kümeye ekle
// Küme üzerinde gezinmek ve her kelimeyi yazdırmak için aralık tabanlı bir for döngüsü kullanın
// Benzersiz kelimelerin toplam sayısını yazdırın
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1İşaretçiler ve Bellek
İşaretçi Nedir?Adres OperatörüDereference OperatörüNull İşaretçilerİşaretçiler ve Diziler'new' ile Dinamik Bellek'delete' ile Belleği Serbest BırakmaÖzet - İşaretçi Pratiği2Vektörler (Dinamik Diziler)
std::vector'a GirişBir Vektör OluşturmaEleman EklemeElemanlara ErişmeVektör BoyutuFor Döngüsü ile YinelemeAralık Tabanlı For DöngüsüEleman SilmeÖzet - Vektör İşlemleri3Proje: Görev Listesi Aracı
Projeye Genel BakışGörev Ekleme6Kümeler (Benzersiz Elemanlar)
std::set'e GirişKüme Oluşturma ve Eleman EklemeEleman Varlığını Kontrol EtmeEleman SilmeKüme Üzerinde YinelemeÖzet - Benzersiz SayılarKendi başına pratik yap: Online C++ derleyicisi