Struct dizisi
- C++ kursu
- Başlangıç
- Ders 97/116
- 5 dk
Struct vector'ü oluşturmayı ve döngüyle gezmeyi öğrenirsin.
Struct vector'ü oluşturma
Aynı yapıdan birden çok öğeyi yönetmek için vector kullanılır. vector<Point> bildirimi, her elemanı bir Point olan dinamik bir dizi oluşturur.
vector<Point> points;
Point p;
p.x = 1;
p.y = 2;
points.push_back(p);Burada points bir Point vector'üdür; push_back ile yeni öğe eklenir. Elemanlara points[0].x gibi erişilir. #include <vector> başlığı gereklidir.
Döngüyle gezme
Bir struct vector'ündeki tüm öğeleri gezmek için döngü kullanırsın. En kolay yol, aralık tabanlı for döngüsüdür.
for (Point p : points) {
cout << p.x << ", " << p.y << endl;
}Burada döngü her öğeyi sırayla p değişkenine kopyalar. Kopyalamadan gezmek için for (const Point& p : points) kullanılır. Aralık tabanlı döngü, vector'ün uzunluğunu bilmeden tüm öğeleri dolaşmanın kısa yoludur.
Uygulama İki Point ekle ve gez
#include <vector> başlığını ekle. vector<Point> points; tanımla. İki Point oluşturup points.push_back(...) ile ekle; birincinin x=1, y=2, ikincinin x=3, y=4 olsun. Aralık tabanlı for ile her öğenin x ve y değerlerini yazdır.
Başlangıç kodu
#include <iostream>
#include <vector>
using namespace std;
struct Point {
int x;
int y;
};
int main() {
// bir Point vector'ü tanımla, iki Point ekle, for ile yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <vector>
using namespace std;
struct Point {
int x;
int y;
};
int main() {
vector<Point> points;
Point a; a.x = 1; a.y = 2;
Point b; b.x = 3; b.y = 4;
points.push_back(a);
points.push_back(b);
for (Point p : points) {
cout << p.x << ", " << p.y << endl;
}
return 0;
}Beklenen çıktı
1, 2 3, 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: vector tanımı
#include <vector>
using namespace std;
vector<Point> ____;
points.push_back(p);
#include <vector>
using namespace std;
vector<Point> points;
points.push_back(p);
Açıklama: points adlı vector<Point> oluşturuldu.
2 vector<Point> için hangi başlık gereklidir?
- <string>
- <vector> Doğru cevap
- <array>
- <list>
Açıklama: vector için <vector> başlığı eklenmelidir.
3 Metodu göreviyle eşleştir
| Kavram | Anlamı |
|---|---|
push_back |
sona ekler |
size |
uzunluk verir |
[i] |
i. öğeyi verir |