Görev ekleme
- C++ kursu
- Başlangıç
- Ders 84/116
- 6 dk
addTask fonksiyonuyla listeye görev eklemeyi öğrenirsin.
Görev ekleme
Şimdi addTask fonksiyonunu yazacağız. Bu fonksiyon yeni bir Task oluşturup başlığını ayarlar ve listeye ekler. Böylece ana program ayrı ayrı Task yazmaktan kurtulur.
Fonksiyon imzası: void addTask(std::vector<Task>& tasks, const std::string& title). Gövdede bir Task oluştur, title ve done = false ayarla, tasks.push_back ile ekle. tasks referans olarak alındığı için ekleme çağırana yansır.
vector<Task> ve referans
Görevleri saklamak için std::vector<Task> kullanılır. Bu vektör dinamik boyutludur; push_back ile eleman ekledikçe büyür. Boş liste std::vector<Task> tasks; ile tanımlanır.
addTask fonksiyonu, tasks parametresini referans olarak alır: std::vector<Task>&. Bu, fonksiyon içindeki push_back çağrısının çağıran tarafın listesini doğrudan değiştirmesi demektir. Değerle geçişde bu değişiklik yansımazdı; bu yüzden referans şarttır.
Uygulama addTask fonksiyonu
void addTask(std::vector<Task>& tasks, const std::string& title) fonksiyonunu tanımla. Gövdede bir Task oluştur, title'a parametreyi ata, done = false yap, tasks.push_back ile ekle. main içinde addTask(tasks, "Ekmek al") çağır, tasks.size()'ı std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
#include <string>
#include <vector>
struct Task {
std::string title;
bool done;
};
// addTask fonksiyonunu tanımla
int main() {
std::vector<Task> tasks;
// addTask çağrısı ekle ve sayıyı yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
#include <vector>
struct Task {
std::string title;
bool done;
};
void addTask(std::vector<Task>& tasks, const std::string& title) {
Task t;
t.title = title;
t.done = false;
tasks.push_back(t);
}
int main() {
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
std::cout << tasks.size() << "\n";
return 0;
}Beklenen çıktı
1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İki görev eklenince tasks[1].title çıktısı nedir?
std::vector<Task> tasks;
addTask(tasks, "Ekmek al");
addTask(tasks, "Süt al");
std::cout << tasks[1].title;- Süt al Doğru cevap
- Boş
- Ekmek al
- 0
Açıklama: İkinci eklenen görevin indeksi 1; title "Süt al" olur.
2 addTask gövdesi
tasks.____(t);
tasks.push_back(t);
Açıklama: tasks.push_back(t); t'yi vektöre ekler.
3 İfadeyi anlamına eşle
| Kavram | Anlamı |
|---|---|
void addTask |
Fonksiyon imzası |
std::vector<Task>& |
Referans parametre |
tasks.push_back(t) |
Ekleme |
addTask(tasks, ...) |
Çağrı |