List merupakan salah satu template container yang terdapat dalam STL (Standard Template Library). List merepresentasikan penyimpanan dengan doubly linked list. Karena menggunakan linked list tanpa array, kalian tidak bisa mengaksesnya dengan index.
Untuk menggunakan list pada C++ kalian bisa menambahkan "#include <list>". Berikut ini adalah contoh kode programnya.
#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main(){
list<float> listku={1, 2, 3};
list<float>::iterator it;
//Isi vektor
listku.insert(listku.begin(), 2.5);
listku.push_front(1.5);
listku.push_back(3.5);
cout << "Jumlah data : " << listku.size();
cout << endl << endl;
cout << "Isi (terbalik) : ";
listku.reverse();//balik urutan
for(it=listku.begin();it!=listku.end();it++)
cout<< *it << " ";
listku.sort();//urutkan
cout << endl << "Isi (terurut) : ";
//tampilkan urutan terbalik tanpa reverse
for(auto p=listku.rbegin();p!=listku.rend();p++)
cout<< *p << " ";
listku.pop_back();
listku.pop_front();
listku.erase(--listku.end());
cout << endl << "Isi (terhapus) : ";
for(auto p=listku.begin();p!=listku.end();p++)
cout<< *p << " ";
listku.clear();//Bersihkan list
return 0;
}
Jumlah data : 6 Isi (terbalik) : 3.5 3 2 1 2.5 1.5 Isi (terurut) : 3.5 3 2.5 2 1.5 1 Isi (terhapus) : 1.5 2 2.5
Contoh kode program di atas mendeklarasikan list dengan tipe data int. Tipe data pada deklarasi list diapit dengan tanda "<" dan ">". Selain itu, isi list diinisiasi dengan 3 nilai awal.
Pada kode program di atas, kita menambahkan data pada list dengan menggunakan function push front, push_back, dan insert. Kemudian kita membalik urutannya dengan reverse sebelum menampilkannya. Data juga ditampilkan dengan urutan terbalik setelah diurutkan dengan sort. Selain itu, ada penghapusan data di akhir program.
Btw, hati-hati saat menggunakan erase. Kalian perlu paham soal pointer dan operatornya. Jika kalian tidak yakin, lebih baik jangan gunakan method yang satu ini.
Untuk menampilkan data dalam list atau container STL lainnya dengan for, kalian butuh iterator. Iterator tersebut bisa bertipe auto. Selain itu, kalian bisa menggunakan tipe yang lebih spesifik sesuai jenis kontainer dan tipe datanya jika ada header <iterator>.
Method untuk List
Beberapa method yang biasa digunakan dalam list adalah sebagai berikut :
- push_back => Menambahkan data di akhir
- pop_back => Menghapus data paling akhir.
- push_front => Menambahkan data di awal.
- pop_front => Menghapus data paling awal.
- insert => menambahkan data baru setelah posisi tertentu.
- erase => Menghapus data di posisi atau rentang tertentu berdasarkan posisi pointer.
- front => Menunjukkan nilai data pada elemen pertama dalam list.
- back => Menunjukkan nilai data pada elemen terakhir dalam list
- empty => memastikan bahwa list sudah kosong.
- size => Mengembalikan nilai berupa ukuran list
- sort => urutkan isi list.
- reverse => balik urutan isi list
- clear => Mengosongkan list
- begin => Mengembalikan iterator berupa pointer yang menunjuk nilai pertama dari list.
- end => Mengembalikan iterator berupa pointer yang menunjuk akhir dari list
- rbegin => Mengembalikan akhir dari reverse iterator berupa pointer.
- rend => Mengembalikan awal dari reverse iterator berupa pointer.
- unique : menghilangkan elemen list yang sama dan bersebelahan. Untuk membuat elemen list menjadi unik, kalian harus mengurutkan isi list.
- merge : Menggabungkan dua list yang terurut menjadi satu.
- splice : Menambahkan isi list dari satu list ke list lainnya.