CodeBlanks Logo Icon CodeBlanks

Struct dizisi

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

main.cpp
#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

main.cpp
#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ı

Soru
#include <vector>
using namespace std;
vector<Point> ____;
points.push_back(p);
Cevap
#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

Başlangıç bölümündeki tüm dersler