For Döngüsü ile Yineleme
Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 14 / 56.
Artık tek tek öğelere nasıl erişeceğinizi ve bir vector boyutunu nasıl kontrol edeceğinizi bildiğinize göre, geleneksel bir for döngüsü kullanarak her öğeyi sistematik bir şekilde işlemeyi öğrenelim. Bu yaklaşım, her öğeyi sırayla ziyaret etmek için .size() yöntemini dizin tabanlı erişimle birleştirir.
Geleneksel bir for döngüsü, 0'dan başlayan ve vektörün size değerine ulaşana kadar artan bir dizin değişkeni kullanır:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}Bu örnekte, döngü koşulu i < names.size() vektörün sınırlarının dışına çıkmamamızı sağlarken names[i] geçerli dizini kullanarak her bir öğeye erişir. Döngü her adı ayrı bir satıra yazdırır.
Bu kalıp, veri koleksiyonlarını işlemek için temeldir. Dizin değişkeni i, üzerinde çalıştığın öğe üzerinde hassas kontrol sağlar; bu da her öğenin position bilgisini bilmen gerektiğinde veya iterate sırasında öğeleri değiştirmek istediğinde onu kullanışlı kılar.
loop tamamlandıktan sonra i değerinin names.size() değerine — bu durumda 3 — eşit olduğuna dikkat edin; çünkü loop, i < names.size() koşulu false olur olmaz durur.
Görev
KolayBir traditional for loop kullanan, bir vector içindeki product names değerleri arasında dolaşan ve bunları numaralı liste biçiminde görüntüleyen bir program Create edin.
Aşağıdaki girdiler sağlanacaktır:
productssayısını temsil eden bir tamsayın- Ardından
productnamesdeğerlerini temsil edenndize
Programınız şunları yapmalıdır:
productsadlı birstd::vector<std::string>Createedinnadetproductnamesdeğerinin her birinivectoröğesinepush_back()kullanarakaddedinvectoriçinde dolaşmak için birindexdeğişkeniyletraditionalbir forloopkullanınloopkoşulunda.size()metodunu kullanın- Her öğeye
indexüzerinden erişmek için köşeli parantez[]operatörünü kullanın - Her
productöğesini, 1'den başlayanpositionnumberdeğeriyle belirtilen biçimde yazdırın
Aşağıdaki tam çıktı biçimini kullanın:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...for loop, index 0 ile başlamalı, koşul olarak i < products.size() kullanmalı ve her yinelemede i değerini artırmalıdır. Yazdırırken, 1'den başlayan position number değerlerini görüntülemek için index değerine 1 ekleyin.
Kendin dene
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Ürün sayısını oku
int n;
cin >> n;
// Ürün adlarını saklamak için bir vektör oluştur
vector<string> products;
// Ürün adlarını oku ve vektöre ekle
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Kodunu aşağıya yaz
// Vektör üzerinde gezinmek için geleneksel bir for döngüsü kullan
// ve her ürünü konum numarasıyla yazdır
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 EklemeKendi başına pratik yap: Online C++ derleyicisi