std::list
- C++ kursu
- Orta seviye
- Ders 54/116
- 5 dk
std::list ile çift bağlı listeyi öğrenirsin.
std::list
std::list, çift yönlü bağlı listedir (doubly linked list). push_front başa, push_back sona ekler. front() ilk öğeyi döndürür.
Örnek: std::list<int> l; l.push_front(10); l.push_front(20);. Şimdi liste 20 -> 10 sırasındadır. l.front() 20 döndürür. push_front başa eklediği için son eklenen öğe baştadır. Bağlı liste, ortaya ekleme/silme O(1)'dir.
list vs vector
list, ortaya ekleme/silmede O(1) sunar (iterator verilince). Ancak rastgele erişim YOKTUR: l[2] derlenmez. Sıralı erişim iterator ile yapılır.
vector ise rastgele erişimde O(1) sunar (v[2]), ama ortaya ekleme O(n)'dir. Seçim: sık ara ekleme varsa list, sık rastgele erişim varsa vector. Bellek: vector ardışık; list düğüm düğümdür, ek yük taşır.
Uygulama list ile çalış
std::list<int> l; oluştur. push_front(10) sonra push_front(20) çağır. l.front()'u std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
#include <list>
// liste oluştur ve başa iki öğe ekle
int main() {
// ilk öğeyi yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <list>
int main() {
std::list<int> l;
l.push_front(10);
l.push_front(20);
std::cout << l.front() << std::endl;
return 0;
}Beklenen çıktı
20
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 push_front çağrısını tamamla
l.push_front(____);
l.push_front(10);
Açıklama: l.push_front(10); listenin başına 10 ekler.
2 list'te hangi işlem YAPILAMAZ?
std::list<int> l;- push_front
- push_back
- front()
- l[2] ile erişim Doğru cevap
Açıklama: list'te rastgele erişim yoktur; l[2] derlenmez.
3 Metodu rolüne eşle
| Kavram | Anlamı |
|---|---|
push_front |
Başa ekle |
push_back |
Sona ekle |
front() |
İlk öğe |
size() |
Öğe sayısı |