Özet - std::vector
- C++ kursu
- Başlangıç
- Ders 64/116
- 5 dk
push_back, size ve range-based for'u birleştirerek bir sınıf listesi yazarsın.
Özet: std::vector
Bu grupta std::vector'ı öğrendin: dinamik boyutlu dizi kapsayıcısı. #include <vector> ile başlar, std::vector<int> nums; ile tanımlanır, push_back ile büyür.
Üç temel erişim yolu gördün: size() sayar, at(i) sınırları denetleyerek erişir, [] hızlı ama denetimsiz erişir. Son olarak range-based for ile tüm elemanları kısa yoldan dolaştırdın. Bunlar C++'ta liste biçiminde veriyle çalışmanın temelidir.
Uygulama Notları topla (range-for)
std::vector<int> grades = {85, 90, 78}; tanımla. Range-based for ile notları topla, ortalamayı std::cout ile yazdır (tamsayı bölme).
Başlangıç kodu
#include <iostream>
#include <vector>
int main() {
std::vector<int> grades = {85, 90, 78};
int sum = 0;
// range-based for ile topla ve ortalama yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <vector>
int main() {
std::vector<int> grades = {85, 90, 78};
int sum = 0;
for (int g : grades) {
sum += g;
}
std::cout << sum / grades.size() << std::endl;
return 0;
}Beklenen çıktı
84
Uygulama Vektörü kur ve son elemanı yazdır
Boş bir std::vector<int> v tanımla. push_back ile 7, 14, 21 değerlerini ekle. Sonra size()'ı ve son elemanı v.at(v.size()-1) ile yazdır.
Başlangıç kodu
#include <iostream>
#include <vector>
int main() {
std::vector<int> v;
// push_back ile 7, 14, 21 ekle; size ve son elemanı yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <vector>
int main() {
std::vector<int> v;
v.push_back(7);
v.push_back(14);
v.push_back(21);
std::cout << v.size() << " " << v.at(v.size() - 1) << std::endl;
return 0;
}Beklenen çıktı
3 21
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kavramları eşle
| Kavram | Anlamı |
|---|---|
push_back |
Sona ekler |
size() |
Sayar |
at(i) |
Denetimli erişim |
for (int x : v) |
Dolaşır |
2 Hangi yöntem sınırları denetler?
nums.???(i)- nums.at(i) Doğru cevap
- nums.push_back(i)
- nums[i]
- nums.size()
Açıklama: at(i) sınırları denetler, geçersiz dizinde hata fırlatır.
3 push_back ile ekle
v.____(42);
v.push_back(42);
Açıklama: push_back(42) sona ekler.