Veri modeli
- C++ kursu
- Başlangıç
- Ders 113/116
- 6 dk
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
#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
#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
struct Task {
string title;
string ____;
};
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 |