CodeBlanks Logo Icon CodeBlanks

Veri modeli

Uygulamanın struct ve vector'lerini kurarsın.

Task yapısı ve vector

Görev listesi uygulamasında her görevi temsil etmek için bir Task yapısı tanımlayacağız. Bu yapının title (başlık) ve status (durum) olmak üzere iki alanı olacak. Tüm görevleri tutmak için vector<Task> kullanacağız.

vector<T>, C++'ta dinamik dizi sağlayan bir kapsayıcıdır. push_back metoduyla eleman ekler, [index] ile elemana erişirsin. Bu derste Task yapısını, tasks adlı vector'ü ve ilk görevi ekleyeceğiz.

vector<Task> kullanımı

vector<Task> tanımı, görevlerin dinamik bir listesini oluşturur. push_back ile yeni görev ekler, [index] ile mevcut göreve erişirsin. #include <vector> başlığı gereklidir.

vector<Task> tasks;
Task t;
t.title = "Ödev";
t.status = "bekliyor";
tasks.push_back(t);
cout << tasks[0].title;

Burada tasks[0] ilk görevdir; .title ve .status ile alanlarına erişilir. Bu desen, görev listesinin temel veri modelini oluşturur.

Uygulama Task yapısı ve vector ekle

#include <vector> ve #include <string> başlıklarını ekle. struct Task { string title; string status; }; tanımla. main içinde printMenu(); çağrısından sonra vector<Task> tasks; oluştur, Task t; yapıp t.title = "Ödev"; ve t.status = "bekliyor"; ata, tasks.push_back(t); ile ekle. cout << tasks[0].title << " - " << tasks[0].status << endl; yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;

void printMenu() {
    cout << "1 - Ekle" << endl;
    cout << "2 - Listele" << endl;
    cout << "3 - Çıkış" << endl;
}

// Task yapısını tanımla

int main() {
    printMenu();
    // bir Task oluştur, vector'e ekle ve yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;

void printMenu() {
    cout << "1 - Ekle" << endl;
    cout << "2 - Listele" << endl;
    cout << "3 - Çıkış" << endl;
}

struct Task {
    string title;
    string status;
};

int main() {
    printMenu();
    vector<Task> tasks;
    Task t;
    t.title = "Ödev";
    t.status = "bekliyor";
    tasks.push_back(t);
    cout << tasks[0].title << " - " << tasks[0].status << endl;
    return 0;
}

Beklenen çıktı

1 - Ekle
2 - Listele
3 - Çıkış
Ödev - bekliyor

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: Task üyesi

Soru
struct Task {
    string title;
    string ____;
};
Cevap
struct Task {
    string title;
    string status;
};

Açıklama: status alanı görevin durumunu tutar.

2 vector<Task> için hangi başlık gerekir?

  • <string>
  • <vector> Doğru cevap
  • <list>
  • <array>

Açıklama: vector <vector> başlığı ile gelir.

3 Alanı türüyle eşleştir

Kavram Anlamı
title başlık metni
status durum metni
vector<Task> görev listesi

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