Bagikan melalui


list Kelas

Kelas daftar Pustaka Standar C++ adalah templat kelas kontainer urutan yang mempertahankan elemennya dalam pengaturan linier dan memungkinkan penyisipan dan penghapusan yang efisien di lokasi mana pun dalam urutan. Urutan disimpan sebagai daftar elemen yang ditautkan dua arah, masing-masing berisi anggota dari beberapa jenis Type.

Sintaks

template <class Type, class Allocator= allocator<Type>>
class list

Parameter

Type
Jenis data elemen yang akan disimpan dalam daftar.

Allocator
Jenis yang mewakili objek alokator tersimpan yang merangkum detail tentang alokasi daftar dan alokasi memori. Argumen ini bersifat opsional, dan nilai defaultnya adalah allocator<Type>.

Keterangan

Pilihan jenis kontainer harus didasarkan secara umum pada jenis pencarian dan penyisipan yang diperlukan oleh aplikasi. Vektor harus menjadi kontainer pilihan untuk mengelola urutan ketika akses acak ke elemen apa pun berada pada premium dan penyisipan atau penghapusan elemen hanya diperlukan pada akhir urutan. Performa kontainer deque kelas lebih unggul ketika akses acak diperlukan dan penyisipan dan penghapusan di awal dan akhir urutan berada pada premium.

Daftar anggota fungsi merge, , reverseunique, remove, dan remove_if telah dioptimalkan untuk operasi pada objek daftar dan menawarkan alternatif berkinerja tinggi untuk rekan generik mereka.

Realokasi daftar terjadi ketika fungsi anggota harus menyisipkan atau menghapus elemen daftar. Dalam semua kasus seperti itu, hanya iterator atau referensi yang menunjuk pada bagian yang dihapus dari urutan yang dikontrol menjadi tidak valid.

Sertakan header <list> standar Pustaka Standar C++ untuk menentukan container daftar templat kelas dan beberapa templat pendukung.

Anggota

Konstruktor

Nama Deskripsi
list Membuat daftar ukuran tertentu atau dengan elemen nilai tertentu atau dengan spesifik allocator atau sebagai salinan dari beberapa daftar lainnya.

Typedefs

Nama Deskripsi
allocator_type Jenis yang mewakili allocator kelas untuk objek daftar.
const_iterator Jenis yang menyediakan iterator dua arah yang dapat membaca const elemen dalam daftar.
const_pointer Jenis yang menyediakan penunjuk ke const elemen dalam daftar.
const_reference Jenis yang menyediakan referensi ke elemen yang const disimpan dalam daftar untuk membaca dan melakukan const operasi.
const_reverse_iterator Jenis yang menyediakan iterator dua arah yang dapat membaca elemen apa pun const dalam daftar.
difference_type Jenis yang menyediakan perbedaan antara dua iterator yang merujuk ke elemen dalam daftar yang sama.
iterator Jenis yang menyediakan iterator dua arah yang dapat membaca atau memodifikasi elemen apa pun dalam daftar.
pointer Jenis yang menyediakan penunjuk ke elemen dalam daftar.
reference Jenis yang menyediakan referensi ke elemen yang const disimpan dalam daftar untuk membaca dan melakukan const operasi.
reverse_iterator Jenis yang menyediakan iterator dua arah yang dapat membaca atau memodifikasi elemen dalam daftar terbalik.
size_type Jenis yang menghitung jumlah elemen dalam daftar.
value_type Jenis yang mewakili jenis data yang disimpan dalam daftar.

Fungsi

Nama Deskripsi
assign Menghapus elemen dari daftar dan menyalin sekumpulan elemen baru ke daftar target.
back Mengembalikan referensi ke elemen terakhir daftar.
begin Mengembalikan iterator yang menangani elemen pertama dalam daftar.
cbegin Mengembalikan iterator const yang membahas elemen pertama dalam daftar.
cend Mengembalikan perulangan const yang membahas lokasi yang menggantikan elemen terakhir dalam daftar.
clear Menghapus semua elemen daftar.
crbegin Mengembalikan iterator const yang menangani elemen pertama dalam daftar terbalik.
crend Mengembalikan iterator const yang membahas lokasi yang menggantikan elemen terakhir dalam daftar terbalik.
emplace Menyisipkan elemen yang dibangun di tempat ke dalam daftar pada posisi tertentu.
emplace_back Menambahkan elemen yang dibangun di tempat ke akhir daftar.
emplace_front Menambahkan elemen yang dibangun di tempat ke awal daftar.
empty Menguji apakah daftar kosong.
end Mengembalikan iterator yang membahas lokasi yang menggantikan elemen terakhir dalam daftar.
erase Menghapus elemen atau rentang elemen dalam daftar dari posisi yang ditentukan.
front Mengembalikan referensi ke elemen pertama dalam daftar.
get_allocator Mengembalikan salinan objek yang allocator digunakan untuk membuat daftar.
insert Menyisipkan elemen atau sejumlah elemen atau rentang elemen ke dalam daftar pada posisi tertentu.
max_size Mengembalikan panjang maksimum daftar.
merge Menghapus elemen dari daftar argumen, menyisipkannya ke dalam daftar target, dan mengurutkan kumpulan elemen gabungan baru dalam urutan naik atau dalam beberapa urutan lain yang ditentukan.
pop_back Menghapus elemen di akhir daftar.
pop_front Menghapus elemen di awal daftar.
push_back Menambahkan elemen ke akhir daftar.
push_front Menambahkan elemen ke awal daftar.
rbegin Mengembalikan iterator yang menangani elemen pertama dalam daftar terbalik.
remove Menghapus elemen dalam daftar yang cocok dengan nilai tertentu.
remove_if Menghapus elemen dari daftar yang predikatnya ditentukan terpenuhi.
rend Mengembalikan iterator yang membahas lokasi yang menggantikan elemen terakhir dalam daftar terbalik.
resize Menentukan ukuran baru untuk daftar.
reverse Membalikkan urutan terjadinya elemen dalam daftar.
size Mengembalikan jumlah elemen dalam daftar.
sort Mengatur elemen daftar dalam urutan naik atau sehubungan dengan beberapa hubungan pesanan lainnya.
splice Menghapus elemen dari daftar argumen dan menyisipkannya ke dalam daftar target.
swap Menukar elemen dari dua daftar.
unique Menghapus elemen duplikat yang berdekatan atau elemen yang berdekatan yang memenuhi beberapa predikat biner lainnya dari daftar.

Operator

Nama Deskripsi
operator= Mengganti elemen daftar dengan salinan daftar lain.

Persyaratan

Header: <list>

allocator_type

Jenis yang mewakili kelas alokator untuk objek daftar.

typedef Allocator allocator_type;

Keterangan

allocator_type adalah sinonim untuk parameter Allocatortemplat .

Contoh

Lihat contoh untuk get_allocator.

assign

Menghapus elemen dari daftar dan menyalin sekumpulan elemen baru ke daftar target.

void assign(
    size_type Count,
    const Type& Val);

void assign
    initializer_list<Type> IList);

template <class InputIterator>
void assign(
    InputIterator First,
    InputIterator Last);

Parameter

First
Posisi elemen pertama dalam rentang elemen yang akan disalin dari daftar argumen.

Last
Posisi elemen pertama tepat di luar rentang elemen yang akan disalin dari daftar argumen.

Count
Jumlah salinan elemen yang disisipkan ke dalam daftar.

Val
Nilai elemen yang disisipkan ke dalam daftar.

IList
Initializer_list yang berisi elemen yang akan disisipkan.

Keterangan

Setelah menghapus elemen yang ada dalam daftar target, tetapkan menyisipkan rentang elemen tertentu dari daftar asli atau dari beberapa daftar lain ke dalam daftar target atau menyisipkan salinan elemen baru dari nilai yang ditentukan ke dalam daftar target

Contoh

// list_assign.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main()
{
    using namespace std;
    list<int> c1, c2;
    list<int>::const_iterator cIter;

    c1.push_back(10);
    c1.push_back(20);
    c1.push_back(30);
    c2.push_back(40);
    c2.push_back(50);
    c2.push_back(60);

    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    c1.assign(++c2.begin(), c2.end());
    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    c1.assign(7, 4);
    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    c1.assign({ 10, 20, 30, 40 });
    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;
}
c1 = 10 20 30c1 = 50 60c1 = 4 4 4 4 4 4 4c1 = 10 20 30 40

back

Mengembalikan referensi ke elemen terakhir daftar.

reference back();

const_reference back() const;

Tampilkan Nilai

Elemen terakhir dari daftar. Jika daftar kosong, nilai pengembalian tidak ditentukan.

Keterangan

Jika nilai back pengembalian ditetapkan ke const_reference, objek daftar tidak dapat dimodifikasi. Jika nilai back pengembalian ditetapkan ke reference, objek daftar dapat dimodifikasi.

Saat dikompilasi dengan menggunakan _ITERATOR_DEBUG_LEVEL yang didefinisikan sebagai 1 atau 2, kesalahan runtime akan terjadi jika Anda mencoba mengakses elemen dalam daftar kosong. Lihat Iterator yang Diperiksa untuk informasi selengkapnya.

Contoh

// list_back.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   c1.push_back( 11 );

   int& i = c1.back( );
   const int& ii = c1.front( );

   cout << "The last integer of c1 is " << i << endl;
   i--;
   cout << "The next-to-last integer of c1 is " << ii << endl;
}
The last integer of c1 is 11
The next-to-last integer of c1 is 10

begin

Mengembalikan iterator yang menangani elemen pertama dalam daftar.

const_iterator begin() const;

iterator begin();

Tampilkan Nilai

Iterator dua arah yang membahas elemen pertama dalam daftar atau ke lokasi yang berhasil membuat daftar kosong.

Keterangan

Jika nilai begin pengembalian ditetapkan ke const_iterator, elemen dalam objek daftar tidak dapat dimodifikasi. Jika nilai begin pengembalian ditetapkan ke iterator, elemen dalam objek daftar dapat dimodifikasi.

Contoh

// list_begin.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;
   list <int>::const_iterator c1_cIter;

   c1.push_back( 1 );
   c1.push_back( 2 );

   c1_Iter = c1.begin( );
   cout << "The first element of c1 is " << *c1_Iter << endl;

*c1_Iter = 20;
   c1_Iter = c1.begin( );
   cout << "The first element of c1 is now " << *c1_Iter << endl;

   // The following line would be an error because iterator is const
   // *c1_cIter = 200;
}
The first element of c1 is 1
The first element of c1 is now 20

cbegin

Mengembalikan iterator const yang membahas elemen pertama dalam rentang.

const_iterator cbegin() const;

Tampilkan Nilai

Iterator const akses dua arah yang menunjuk pada elemen pertama rentang, atau lokasi tepat di luar akhir rentang kosong (untuk rentang kosong, cbegin() == cend()).

Keterangan

Dengan nilai cbeginpengembalian , elemen dalam rentang tidak dapat dimodifikasi.

Anda dapat menggunakan fungsi anggota ini sebagai pengganti begin() fungsi anggota untuk menjamin bahwa nilai yang dikembalikan adalah const_iterator. Biasanya, ini digunakan bersama dengan auto kata kunci pengurangan jenis, seperti yang ditunjukkan dalam contoh berikut. Dalam contoh, pertimbangkan Container untuk menjadi kontainer yang dapat dimodifikasi (non- const) dari segala jenis yang mendukung begin() dan cbegin().

auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();

// i2 is Container<T>::const_iterator

cend

Mengembalikan iterator const yang membahas lokasi tepat di luar elemen terakhir dalam rentang.

const_iterator cend() const;

Tampilkan Nilai

Iterator const akses dua arah yang menunjuk tepat di luar akhir rentang.

Keterangan

cend digunakan untuk menguji apakah iterator telah melewati akhir rentangnya.

Anda dapat menggunakan fungsi anggota ini sebagai pengganti end() fungsi anggota untuk menjamin bahwa nilai yang dikembalikan adalah const_iterator. Biasanya, ini digunakan bersama dengan auto kata kunci pengurangan jenis, seperti yang ditunjukkan dalam contoh berikut. Dalam contoh, pertimbangkan Container untuk menjadi kontainer yang dapat dimodifikasi (non- const) dari segala jenis yang mendukung end() dan cend().

auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();

// i2 is Container<T>::const_iterator

Nilai yang dikembalikan oleh cend tidak boleh didereferensikan.

hapus

Menghapus semua elemen daftar.

void clear();

Contoh

// list_clear.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main() {
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   cout << "The size of the list is initially " << c1.size( ) << endl;
   c1.clear( );
   cout << "The size of list after clearing is " << c1.size( ) << endl;
}
The size of the list is initially 3
The size of list after clearing is 0

const_iterator

Jenis yang menyediakan iterator dua arah yang dapat membaca const elemen dalam daftar.

typedef implementation-defined const_iterator;

Keterangan

Jenis const_iterator tidak dapat digunakan untuk mengubah nilai elemen.

Contoh

Lihat contoh untuk back.

const_pointer

Menyediakan penunjuk ke const elemen dalam daftar.

typedef typename Allocator::const_pointer const_pointer;

Keterangan

Jenis const_pointer tidak dapat digunakan untuk mengubah nilai elemen.

Dalam kebanyakan kasus, harus iterator digunakan untuk mengakses elemen dalam objek daftar.

const_reference

Jenis yang menyediakan referensi ke elemen yang const disimpan dalam daftar untuk membaca dan melakukan const operasi.

typedef typename Allocator::const_reference const_reference;

Keterangan

Jenis const_reference tidak dapat digunakan untuk mengubah nilai elemen.

Contoh

// list_const_ref.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   c1.push_back( 20 );

   const list <int> c2 = c1;
   const int &i = c2.front( );
   const int &j = c2.back( );
   cout << "The first element is " << i << endl;
   cout << "The second element is " << j << endl;

   // The following line would cause an error because c2 is const
   // c2.push_back( 30 );
}
The first element is 10
The second element is 20

const_reverse_iterator

Jenis yang menyediakan iterator dua arah yang dapat membaca elemen apa pun const dalam daftar.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator;

Keterangan

Jenis const_reverse_iterator tidak dapat mengubah nilai elemen dan digunakan untuk melakukan iterasi melalui daftar secara terbalik.

Contoh

Lihat contoh untuk rbegin.

crbegin

Mengembalikan iterator const yang menangani elemen pertama dalam daftar terbalik.

const_reverse_iterator rbegin() const;

Tampilkan Nilai

Iterator dua arah terbalik const yang membahas elemen pertama dalam daftar terbalik (atau mengatasi apa yang telah menjadi elemen terakhir dalam yang tidak terbalik list).

Keterangan

crbegin digunakan dengan daftar terbalik seperti list::begin yang digunakan dengan list.

Dengan nilai crbeginpengembalian , objek daftar tidak dapat dimodifikasi. list::rbegin dapat digunakan untuk melakukan iterasi melalui daftar mundur.

Contoh

// list_crbegin.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::const_reverse_iterator c1_crIter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );
   c1_crIter = c1.crbegin( );
   cout << "The last element in the list is " << *c1_crIter << "." << endl;
}
The last element in the list is 30.

crend

Mengembalikan iterator const yang membahas lokasi yang menggantikan elemen terakhir dalam daftar terbalik.

const_reverse_iterator rend() const;

Tampilkan Nilai

Iterator dua arah terbalik const yang membahas lokasi yang menggantikan elemen terakhir dalam terbalik list (lokasi yang telah mendahului elemen pertama dalam yang tidak terbalik list).

Keterangan

crend digunakan dengan daftar terbalik seperti list::end yang digunakan dengan list.

Dengan nilai crendpengembalian , list objek tidak dapat dimodifikasi.

crend dapat digunakan untuk menguji apakah iterator terbalik telah mencapai akhir list.

Nilai yang dikembalikan oleh crend tidak boleh didereferensikan.

Contoh

// list_crend.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::const_reverse_iterator c1_crIter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   c1_crIter = c1.crend( );
   c1_crIter --;  // Decrementing a reverse iterator moves it forward in
                 // the list (to point to the first element here)
   cout << "The first element in the list is: " << *c1_crIter << endl;
}
The first element in the list is: 10

difference_type

Jenis bilangan bulat bertanda tangan yang dapat digunakan untuk mewakili jumlah elemen daftar dalam rentang antara elemen yang diarahkan oleh iterator.

typedef typename Allocator::difference_type difference_type;

Keterangan

difference_type adalah jenis yang dikembalikan saat mengurangi atau menambah melalui iterator kontainer. difference_type biasanya digunakan untuk mewakili jumlah elemen dalam rentang [ first, last) antara iterator first dan last, termasuk elemen yang diarahkan oleh first dan rentang elemen hingga, tetapi tidak termasuk, elemen yang ditunjukkan oleh last.

Perhatikan bahwa meskipun difference_type tersedia untuk semua iterator yang memenuhi persyaratan iterator input, yang mencakup kelas iterator dua arah yang didukung oleh kontainer yang dapat dibalik seperti set, pengurangan antara iterator hanya didukung oleh iterator akses acak yang disediakan oleh kontainer akses acak, seperti vector Kelas.

Contoh

// list_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <list>
#include <algorithm>

int main( )
{
   using namespace std;

   list <int> c1;
   list <int>::iterator   c1_Iter, c2_Iter;

   c1.push_back( 30 );
   c1.push_back( 20 );
   c1.push_back( 30 );
   c1.push_back( 10 );
   c1.push_back( 30 );
   c1.push_back( 20 );

   c1_Iter = c1.begin( );
   c2_Iter = c1.end( );

    list <int>::difference_type df_typ1, df_typ2, df_typ3;

   df_typ1 = count( c1_Iter, c2_Iter, 10 );
   df_typ2 = count( c1_Iter, c2_Iter, 20 );
   df_typ3 = count( c1_Iter, c2_Iter, 30 );
   cout << "The number '10' is in c1 collection " << df_typ1 << " times.\n";
   cout << "The number '20' is in c1 collection " << df_typ2 << " times.\n";
   cout << "The number '30' is in c1 collection " << df_typ3 << " times.\n";
}
The number '10' is in c1 collection 1 times.
The number '20' is in c1 collection 2 times.
The number '30' is in c1 collection 3 times.

emplace

Menyisipkan elemen yang dibangun di tempat ke dalam daftar pada posisi tertentu.

void emplace(iterator Where, Type&& val);

Parameter

Where
Posisi dalam target list tempat elemen pertama dimasukkan.

val
Elemen ditambahkan ke akhir list.

Keterangan

Jika pengecualian dilemparkan, dibiarkan list tidak diubah dan pengecualian ditumbuhi kembali.

Contoh

// list_emplace.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   list <string> c2;
   string str("a");

   c2.emplace(c2.begin(), move( str ) );
   cout << "Moved first element: " << c2.back( ) << endl;
}
Moved first element: a

emplace_back

Menambahkan elemen yang dibangun di tempat ke akhir daftar.

void emplace_back(Type&& val);

Parameter

val
Elemen ditambahkan ke akhir list.

Keterangan

Jika pengecualian dilemparkan, dibiarkan list tidak diubah dan pengecualian ditumbuhi kembali.

Contoh

// list_emplace_back.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   list <string> c2;
   string str("a");

   c2.emplace_back( move( str ) );
   cout << "Moved first element: " << c2.back( ) << endl;
}
Moved first element: a

emplace_front

Menambahkan elemen yang dibangun di tempat ke awal daftar.

void emplace_front(Type&& val);

Parameter

val
Elemen ditambahkan ke awal list.

Keterangan

Jika pengecualian dilemparkan, dibiarkan list tidak diubah dan pengecualian ditumbuhi kembali.

Contoh

// list_emplace_front.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   list <string> c2;
   string str("a");

   c2.emplace_front( move( str ) );
   cout << "Moved first element: " << c2.front( ) << endl;
}
Moved first element: a

empty

Menguji apakah daftar kosong.

bool empty() const;

Tampilkan Nilai

true jika daftar kosong; false jika daftar tidak kosong.

Contoh

// list_empty.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   if ( c1.empty( ) )
      cout << "The list is empty." << endl;
   else
      cout << "The list is not empty." << endl;
}
The list is not empty.

end

Mengembalikan iterator yang membahas lokasi yang menggantikan elemen terakhir dalam daftar.

const_iterator end() const;
iterator end();

Tampilkan Nilai

Iterator dua arah yang membahas lokasi yang menggantikan elemen terakhir dalam daftar. Jika daftar kosong, maka list::end == list::begin.

Keterangan

end digunakan untuk menguji apakah iterator telah mencapai akhir daftarnya.

Contoh

// list_end.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   c1_Iter = c1.end( );
   c1_Iter--;
   cout << "The last integer of c1 is " << *c1_Iter << endl;

   c1_Iter--;
*c1_Iter = 400;
   cout << "The new next-to-last integer of c1 is "
        << *c1_Iter << endl;

   // If a const iterator had been declared instead with the line:
   // list <int>::const_iterator c1_Iter;
   // an error would have resulted when inserting the 400

   cout << "The list is now:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
}
The last integer of c1 is 30
The new next-to-last integer of c1 is 400
The list is now: 10 400 30

erase

Menghapus elemen atau rentang elemen dalam daftar dari posisi yang ditentukan.

iterator erase(iterator Where);
iterator erase(iterator first, iterator last);

Parameter

Where
Posisi elemen yang akan dihapus dari daftar.

first
Posisi elemen pertama dihapus dari daftar.

last
Posisi tepat di luar elemen terakhir yang dihapus dari daftar.

Tampilkan Nilai

Iterator dua arah yang menunjuk elemen pertama yang tersisa di luar elemen apa pun yang dihapus, atau penunjuk ke akhir daftar jika tidak ada elemen tersebut.

Keterangan

Tidak ada realokasi yang terjadi, sehingga iterator dan referensi menjadi tidak valid hanya untuk elemen yang dihapus.

erase tidak pernah melemparkan pengecualian.

Contoh

// list_erase.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator Iter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );
   c1.push_back( 40 );
   c1.push_back( 50 );
   cout << "The initial list is:";
   for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
      cout << " " << *Iter;
   cout << endl;

   c1.erase( c1.begin( ) );
   cout << "After erasing the first element, the list becomes:";
   for ( Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
      cout << " " << *Iter;
   cout << endl;
   Iter = c1.begin( );
   Iter++;
   c1.erase( Iter, c1.end( ) );
   cout << "After erasing all elements but the first, the list becomes: ";
   for (Iter = c1.begin( ); Iter != c1.end( ); Iter++ )
      cout << " " << *Iter;
   cout << endl;
}
The initial list is: 10 20 30 40 50
After erasing the first element, the list becomes: 20 30 40 50
After erasing all elements but the first, the list becomes:  20

front

Mengembalikan referensi ke elemen pertama dalam daftar.

reference front();
const_reference front() const;

Tampilkan Nilai

Jika daftar kosong, pengembalian tidak ditentukan.

Keterangan

Jika nilai front pengembalian ditetapkan ke const_reference, objek daftar tidak dapat dimodifikasi. Jika nilai front pengembalian ditetapkan ke reference, objek daftar dapat dimodifikasi.

Saat dikompilasi dengan menggunakan _ITERATOR_DEBUG_LEVEL yang didefinisikan sebagai 1 atau 2, kesalahan runtime akan terjadi jika Anda mencoba mengakses elemen dalam daftar kosong. Lihat Iterator yang Diperiksa untuk informasi selengkapnya.

Contoh

// list_front.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main() {
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );

   int& i = c1.front();
   const int& ii = c1.front();

   cout << "The first integer of c1 is " << i << endl;
   i++;
   cout << "The first integer of c1 is " << ii << endl;
}
The first integer of c1 is 10
The first integer of c1 is 11

get_allocator

Mengembalikan salinan objek alokator yang digunakan untuk membuat daftar.

Allocator get_allocator() const;

Tampilkan Nilai

Alokator yang digunakan oleh daftar.

Keterangan

Alokator untuk kelas daftar menentukan bagaimana kelas mengelola penyimpanan. Alokator default yang disediakan dengan kelas kontainer Pustaka Standar C++ cukup untuk sebagian besar kebutuhan pemrograman. Menulis dan menggunakan kelas alokator Anda sendiri adalah topik C++ tingkat lanjut.

Contoh

// list_get_allocator.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   // The following lines declare objects
   // that use the default allocator.
   list <int> c1;
   list <int, allocator<int> > c2 = list <int, allocator<int> >( allocator<int>( ) );

   // c3 will use the same allocator class as c1
   list <int> c3( c1.get_allocator( ) );

   list<int>::allocator_type xlst = c1.get_allocator( );
   // You can now call functions on the allocator class used by c1
}

insert

Menyisipkan elemen atau sejumlah elemen atau rentang elemen ke dalam daftar pada posisi tertentu.

iterator insert(iterator Where, const Type& Val);
iterator insert(iterator Where, Type&& Val);

void insert(iterator Where, size_type Count, const Type& Val);
iterator insert(iterator Where, initializer_list<Type> IList);

template <class InputIterator>
void insert(iterator Where, InputIterator First, InputIterator Last);

Parameter

Where
Posisi dalam daftar target tempat elemen pertama disisipkan.

Val
Nilai elemen yang disisipkan ke dalam daftar.

Count
Jumlah elemen yang dimasukkan ke dalam daftar.

First
Posisi elemen pertama dalam rentang elemen dalam daftar argumen yang akan disalin.

Last
Posisi elemen pertama di luar rentang elemen dalam daftar argumen yang akan disalin.

Tampilkan Nilai

Dua fungsi sisipan pertama mengembalikan iterator yang menunjuk ke posisi di mana elemen baru dimasukkan ke dalam daftar.

Contoh

// list_class_insert.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main()
{
    using namespace std;
    list <int> c1, c2;
    list <int>::iterator Iter;

    c1.push_back(10);
    c1.push_back(20);
    c1.push_back(30);
    c2.push_back(40);
    c2.push_back(50);
    c2.push_back(60);

    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    Iter = c1.begin();
    Iter++;
    c1.insert(Iter, 100);
    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    Iter = c1.begin();
    Iter++;
    Iter++;
    c1.insert(Iter, 2, 200);

    cout << "c1 =";
    for(auto c : c1)
        cout << " " << c;
    cout << endl;

    c1.insert(++c1.begin(), c2.begin(), --c2.end());

    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    // initialize a list of strings by moving
    list < string > c3;
    string str("a");

    c3.insert(c3.begin(), move(str));
    cout << "Moved first element: " << c3.front() << endl;

    // Assign with an initializer_list
    list <int> c4{ {1, 2, 3, 4} };
    c4.insert(c4.begin(), { 5, 6, 7, 8 });

    cout << "c4 =";
    for (auto c : c4)
        cout << " " << c;
    cout << endl;
}

iterator

Jenis yang menyediakan iterator dua arah yang dapat membaca atau memodifikasi elemen apa pun dalam daftar.

typedef implementation-defined iterator;

Keterangan

Jenis iterator dapat digunakan untuk mengubah nilai elemen.

Contoh

Lihat contoh untuk begin.

list

Membuat daftar ukuran tertentu atau dengan elemen nilai tertentu atau dengan alokator tertentu atau sebagai salinan semua atau bagian dari beberapa daftar lainnya.

list();
explicit list(const Allocator& Al);
explicit list(size_type Count);
list(size_type Count, const Type& Val);
list(size_type Count, const Type& Val, const Allocator& Al);

list(const list& Right);
list(list&& Right);
list(initializer_list<Type> IList, const Allocator& Al);

template <class InputIterator>
list(InputIterator First, InputIterator Last);

template <class InputIterator>
list(InputIterator First, InputIterator Last, const Allocator& Al);

Parameter

Al
Kelas alokator untuk digunakan dengan objek ini.

Count
Jumlah elemen dalam daftar yang dibangun.

Val
Nilai elemen dalam daftar.

Right
Daftar tempat daftar yang dibuat akan menjadi salinan.

First
Posisi elemen pertama dalam rentang elemen yang akan disalin.

Last
Posisi elemen pertama di luar rentang elemen yang akan disalin.

IList
initializer_list yang berisi elemen yang akan disalin.

Keterangan

Semua konstruktor menyimpan objek alokator (Al) dan menginisialisasi daftar.

get_allocator mengembalikan salinan objek alokator yang digunakan untuk membuat daftar.

Dua konstruktor pertama menentukan daftar awal kosong, yang kedua menentukan jenis alokator (Al) yang akan digunakan.

Konstruktor ketiga menentukan pengulangan angka (Count) elemen tertentu dari nilai default untuk kelas Type.

Konstruktor keempat dan kelima menentukan pengulanganCount () elemen nilai Val.

Konstruktor keenam menentukan salinan daftar Right.

Konstruktor ketujuh memindahkan daftar Right.

Konstruktor kedelapan menggunakan initializer_list untuk menentukan elemen.

Dua konstruktor berikutnya menyalin rentang [First, Last) daftar.

Tidak ada konstruktor yang melakukan realokasi sementara.

Contoh

// list_class_list.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main()
{
    using namespace std;
    // Create an empty list c0
    list <int> c0;

    // Create a list c1 with 3 elements of default value 0
    list <int> c1(3);

    // Create a list c2 with 5 elements of value 2
    list <int> c2(5, 2);

    // Create a list c3 with 3 elements of value 1 and with the
    // allocator of list c2
    list <int> c3(3, 1, c2.get_allocator());

    // Create a copy, list c4, of list c2
    list <int> c4(c2);

    // Create a list c5 by copying the range c4[ first,  last)
    list <int>::iterator c4_Iter = c4.begin();
    c4_Iter++;
    c4_Iter++;
    list <int> c5(c4.begin(), c4_Iter);

    // Create a list c6 by copying the range c4[ first,  last) and with
    // the allocator of list c2
    c4_Iter = c4.begin();
    c4_Iter++;
    c4_Iter++;
    c4_Iter++;
    list <int> c6(c4.begin(), c4_Iter, c2.get_allocator());

    cout << "c1 =";
    for (auto c : c1)
        cout << " " << c;
    cout << endl;

    cout << "c2 =";
    for (auto c : c2)
        cout << " " << c;
    cout << endl;

    cout << "c3 =";
    for (auto c : c3)
        cout << " " << c;
    cout << endl;

    cout << "c4 =";
    for (auto c : c4)
        cout << " " << c;
    cout << endl;

    cout << "c5 =";
    for (auto c : c5)
        cout << " " << c;
    cout << endl;

    cout << "c6 =";
    for (auto c : c6)
        cout << " " << c;
    cout << endl;

    // Move list c6 to list c7
    list <int> c7(move(c6));
    cout << "c7 =";
    for (auto c : c7)
        cout << " " << c;
    cout << endl;

    // Construct with initializer_list
    list<int> c8({ 1, 2, 3, 4 });
    cout << "c8 =";
    for (auto c : c8)
        cout << " " << c;
    cout << endl;
}
c1 = 0 0 0c2 = 2 2 2 2 2c3 = 1 1 1c4 = 2 2 2 2 2c5 = 2 2c6 = 2 2 2c7 = 2 2 2c8 = 1 2 3 4

max_size

Mengembalikan panjang maksimum daftar.

size_type max_size() const;

Tampilkan Nilai

Panjang maksimum yang mungkin dari daftar.

Contoh

// list_max_size.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::size_type i;

   i = c1.max_size( );
   cout << "Maximum possible length of the list is " << i << "." << endl;
}

merge

Menghapus elemen dari daftar argumen, menyisipkannya ke dalam daftar target, dan mengurutkan kumpulan elemen gabungan baru dalam urutan naik atau dalam beberapa urutan lain yang ditentukan.

void merge(list<Type, Allocator>& right);

template <class Traits>
void merge(list<Type, Allocator>& right, Traits comp);

Parameter

right
Daftar argumen yang akan digabungkan dengan daftar target.

comp
Operator perbandingan yang digunakan untuk mengurutkan elemen daftar target.

Keterangan

Daftar right argumen digabungkan dengan daftar target.

Argumen dan daftar target harus diurutkan dengan hubungan perbandingan yang sama dengan urutan yang dihasilkan akan diurutkan. Urutan default untuk fungsi anggota pertama adalah urutan naik. Fungsi anggota kedua memberlakukan operasi comp perbandingan kelas Traitsyang ditentukan pengguna .

Contoh

// list_merge.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1, c2, c3;
   list <int>::iterator c1_Iter, c2_Iter, c3_Iter;

   c1.push_back( 3 );
   c1.push_back( 6 );
   c2.push_back( 2 );
   c2.push_back( 4 );
   c3.push_back( 5 );
   c3.push_back( 1 );

   cout << "c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   cout << "c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   c2.merge( c1 );  // Merge c1 into c2 in (default) ascending order
   c2.sort( greater<int>( ) );
   cout << "After merging c1 with c2 and sorting with >: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   cout << "c3 =";
   for ( c3_Iter = c3.begin( ); c3_Iter != c3.end( ); c3_Iter++ )
      cout << " " << *c3_Iter;
   cout << endl;

   c2.merge( c3, greater<int>( ) );
   cout << "After merging c3 with c2 according to the '>' comparison relation: c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;
}
c1 = 3 6
c2 = 2 4
After merging c1 with c2 and sorting with >: c2 = 6 4 3 2
c3 = 5 1
After merging c3 with c2 according to the '>' comparison relation: c2 = 6 5 4 3 2 1

operator=

Mengganti elemen daftar dengan salinan daftar lain.

list& operator=(const list& right);
list& operator=(list&& right);

Parameter

right
yang list sedang disalin ke listdalam .

Keterangan

Setelah menghapus elemen yang ada dalam list, operator menyalin atau memindahkan konten right ke listdalam .

Contoh

// list_operator_as.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list<int> v1, v2, v3;
   list<int>::iterator iter;

   v1.push_back(10);
   v1.push_back(20);
   v1.push_back(30);
   v1.push_back(40);
   v1.push_back(50);

   cout << "v1 = " ;
   for (iter = v1.begin(); iter != v1.end(); iter++)
      cout << *iter << " ";
   cout << endl;

   v2 = v1;
   cout << "v2 = ";
   for (iter = v2.begin(); iter != v2.end(); iter++)
      cout << *iter << " ";
   cout << endl;

// move v1 into v2
   v2.clear();
   v2 = forward< list<int> >(v1);
   cout << "v2 = ";
   for (iter = v2.begin(); iter != v2.end(); iter++)
      cout << *iter << " ";
   cout << endl;
}

pointer

Menyediakan penunjuk ke elemen dalam daftar.

typedef typename Allocator::pointer pointer;

Keterangan

Jenis pointer dapat digunakan untuk mengubah nilai elemen.

Dalam kebanyakan kasus, harus iterator digunakan untuk mengakses elemen dalam objek daftar.

pop_back

Menghapus elemen di akhir daftar.

void pop_back();

Keterangan

Elemen terakhir tidak boleh kosong. pop_back tidak pernah melemparkan pengecualian.

Contoh

// list_pop_back.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 1 );
   c1.push_back( 2 );
   cout << "The first element is: " << c1.front( ) << endl;
   cout << "The last element is: " << c1.back( ) << endl;

   c1.pop_back( );
   cout << "After deleting the element at the end of the list, "
           "the last element is: " << c1.back( ) << endl;
}
The first element is: 1
The last element is: 2
After deleting the element at the end of the list, the last element is: 1

pop_front

Menghapus elemen di awal daftar.

void pop_front();

Keterangan

Elemen pertama tidak boleh kosong. pop_front tidak pernah melemparkan pengecualian.

Contoh

// list_pop_front.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 1 );
   c1.push_back( 2 );
   cout << "The first element is: " << c1.front( ) << endl;
   cout << "The second element is: " << c1.back( ) << endl;

   c1.pop_front( );
   cout << "After deleting the element at the beginning of the list, "
         "the first element is: " << c1.front( ) << endl;
}
The first element is: 1
The second element is: 2
After deleting the element at the beginning of the list, the first element is: 2

push_back

Menambahkan elemen ke akhir daftar.

void push_back(const Type& val);
void push_back(Type&& val);

Parameter

val
Elemen ditambahkan ke akhir daftar.

Keterangan

Jika pengecualian dilemparkan, daftar dibiarkan tidak diubah dan pengecualian ditumbuhi kembali.

Contoh

// list_push_back.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 1 );
   if ( c1.size( ) != 0 )
      cout << "Last element: " << c1.back( ) << endl;

   c1.push_back( 2 );
   if ( c1.size( ) != 0 )
      cout << "New last element: " << c1.back( ) << endl;

// move initialize a list of strings
   list <string> c2;
   string str("a");

   c2.push_back( move( str ) );
   cout << "Moved first element: " << c2.back( ) << endl;
}
Last element: 1
New last element: 2
Moved first element: a

push_front

Menambahkan elemen ke awal daftar.

void push_front(const Type& val);
void push_front(Type&& val);

Parameter

val
Elemen ditambahkan ke awal daftar.

Keterangan

Jika pengecualian dilemparkan, daftar dibiarkan tidak diubah dan pengecualian ditumbuhi kembali.

Contoh

// list_push_front.cpp
// compile with: /EHsc
#include <list>
#include <iostream>
#include <string>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_front( 1 );
   if ( c1.size( ) != 0 )
      cout << "First element: " << c1.front( ) << endl;

   c1.push_front( 2 );
   if ( c1.size( ) != 0 )
      cout << "New first element: " << c1.front( ) << endl;

// move initialize a list of strings
   list <string> c2;
   string str("a");

   c2.push_front( move( str ) );
   cout << "Moved first element: " << c2.front( ) << endl;
}
First element: 1
New first element: 2
Moved first element: a

rbegin

Mengembalikan iterator yang membahas elemen pertama dalam daftar terbalik.

const_reverse_iterator rbegin() const;
reverse_iterator rbegin();

Tampilkan Nilai

Iterator dua arah terbalik yang membahas elemen pertama dalam daftar terbalik (atau mengatasi apa yang telah menjadi elemen terakhir dalam daftar yang tidak terbalik).

Keterangan

rbegin digunakan dengan daftar terbalik seperti begin yang digunakan dengan daftar.

Jika nilai rbegin pengembalian ditetapkan ke const_reverse_iterator, objek daftar tidak dapat dimodifikasi. Jika nilai rbegin pengembalian ditetapkan ke reverse_iterator, objek daftar dapat dimodifikasi.

rbegin dapat digunakan untuk melakukan iterasi melalui daftar mundur.

Contoh

// list_rbegin.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;
   list <int>::reverse_iterator c1_rIter;

   // If the following line replaced the line above, *c1_rIter = 40;
   // (below) would be an error
   //list <int>::const_reverse_iterator c1_rIter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );
   c1_rIter = c1.rbegin( );
   cout << "The last element in the list is " << *c1_rIter << "." << endl;

   cout << "The list is:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   // rbegin can be used to start an iteration through a list in
   // reverse order
   cout << "The reversed list is:";
   for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
      cout << " " << *c1_rIter;
   cout << endl;

   c1_rIter = c1.rbegin( );
*c1_rIter = 40;
   cout << "The last element in the list is now " << *c1_rIter << "." << endl;
}
The last element in the list is 30.
The list is: 10 20 30
The reversed list is: 30 20 10
The last element in the list is now 40.

reference

Jenis yang menyediakan referensi ke elemen yang disimpan dalam daftar.

typedef typename Allocator::reference reference;

Contoh

// list_ref.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   c1.push_back( 20 );

   int &i = c1.front( );
   int &j = c1.back( );
   cout << "The first element is " << i << endl;
   cout << "The second element is " << j << endl;
}
The first element is 10
The second element is 20

remove

Menghapus elemen dalam daftar yang cocok dengan nilai tertentu.

void remove(const Type& val);

Parameter

val
Nilai yang, jika dipegang oleh elemen, akan menghasilkan penghapusan elemen tersebut dari daftar.

Keterangan

Urutan elemen yang tersisa tidak terpengaruh.

Contoh

// list_remove.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter, c2_Iter;

   c1.push_back( 5 );
   c1.push_back( 100 );
   c1.push_back( 5 );
   c1.push_back( 200 );
   c1.push_back( 5 );
   c1.push_back( 300 );

   cout << "The initial list is c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   list <int> c2 = c1;
   c2.remove( 5 );
   cout << "After removing elements with value 5, the list becomes c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;
}
The initial list is c1 = 5 100 5 200 5 300
After removing elements with value 5, the list becomes c2 = 100 200 300

remove_if

Menghapus elemen dari daftar yang predikatnya ditentukan terpenuhi.

template <class Predicate>
void remove_if(Predicate pred)

Parameter

pred
Predikat unary yang, jika dipenuhi oleh elemen, menghasilkan penghapusan elemen tersebut dari daftar.

Contoh

// list_remove_if.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

template <class T> class is_odd : public std::unary_function<T, bool>
{
public:
   bool operator( ) ( T& val )
   {
   return ( val % 2 ) == 1;
   }
};

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter, c2_Iter;

   c1.push_back( 3 );
   c1.push_back( 4 );
   c1.push_back( 5 );
   c1.push_back( 6 );
   c1.push_back( 7 );
   c1.push_back( 8 );

   cout << "The initial list is c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   list <int> c2 = c1;
   c2.remove_if( is_odd<int>( ) );

   cout << "After removing the odd elements, "
        << "the list becomes c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;
}
The initial list is c1 = 3 4 5 6 7 8
After removing the odd elements, the list becomes c2 = 4 6 8

rend

Mengembalikan iterator yang membahas lokasi yang mengikuti elemen terakhir dalam daftar terbalik.

const_reverse_iterator rend() const;
reverse_iterator rend();

Tampilkan Nilai

Iterator dua arah terbalik yang membahas lokasi yang menggantikan elemen terakhir dalam daftar terbalik (lokasi yang telah mendahului elemen pertama dalam daftar yang tidak terbalik).

Keterangan

rend digunakan dengan daftar terbalik seperti end yang digunakan dengan daftar.

Jika nilai rend pengembalian ditetapkan ke const_reverse_iterator, objek daftar tidak dapat dimodifikasi. Jika nilai rend pengembalian ditetapkan ke reverse_iterator, objek daftar dapat dimodifikasi.

rend dapat digunakan untuk menguji apakah iterator terbalik telah mencapai akhir daftarnya.

Nilai yang dikembalikan oleh rend tidak boleh didereferensikan.

Contoh

// list_rend.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;
   list <int>::reverse_iterator c1_rIter;

   // If the following line had replaced the line above, an error would
   // have resulted in the line modifying an element (commented below)
   // because the iterator would have been const
   // list <int>::const_reverse_iterator c1_rIter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   c1_rIter = c1.rend( );
   c1_rIter --;  // Decrementing a reverse iterator moves it forward in
                 // the list (to point to the first element here)
   cout << "The first element in the list is: " << *c1_rIter << endl;

   cout << "The list is:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   // rend can be used to test if an iteration is through all of the
   // elements of a reversed list
   cout << "The reversed list is:";
   for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
      cout << " " << *c1_rIter;
   cout << endl;

   c1_rIter = c1.rend( );
   c1_rIter--;  // Decrementing the reverse iterator moves it backward
                // in the reversed list (to the last element here)

*c1_rIter = 40;  // This modification of the last element would have
                    // caused an error if a const_reverse iterator had
                    // been declared (as noted above)

   cout << "The modified reversed list is:";
   for ( c1_rIter = c1.rbegin( ); c1_rIter != c1.rend( ); c1_rIter++ )
      cout << " " << *c1_rIter;
   cout << endl;
}
The first element in the list is: 10
The list is: 10 20 30
The reversed list is: 30 20 10
The modified reversed list is: 30 20 40

resize

Menentukan ukuran baru untuk daftar.

void resize(size_type _Newsize);
void resize(size_type _Newsize, Type val);

Parameter

_Newsize
Ukuran baru daftar.

val
Nilai elemen baru yang akan ditambahkan ke daftar jika ukuran baru lebih besar dari ukuran aslinya. Jika nilai dihilangkan, elemen baru diberi nilai default untuk kelas .

Keterangan

Jika ukuran daftar kurang dari ukuran yang diminta, _Newsize, elemen ditambahkan ke daftar hingga mencapai ukuran yang diminta.

Jika ukuran daftar lebih besar dari ukuran yang diminta, elemen yang paling dekat dengan akhir daftar dihapus hingga daftar mencapai ukuran _Newsize.

Jika ukuran daftar saat ini sama dengan ukuran yang diminta, tidak ada tindakan yang diambil.

size mencerminkan ukuran daftar saat ini.

Contoh

// list_resize.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   c1.resize( 4,40 );
   cout << "The size of c1 is " << c1.size( ) << endl;
   cout << "The value of the last element is " << c1.back( ) << endl;

   c1.resize( 5 );
   cout << "The size of c1 is now " << c1.size( ) << endl;
   cout << "The value of the last element is now " << c1.back( ) << endl;

   c1.resize( 2 );
   cout << "The reduced size of c1 is: " << c1.size( ) << endl;
   cout << "The value of the last element is now " << c1.back( ) << endl;
}
The size of c1 is 4
The value of the last element is 40
The size of c1 is now 5
The value of the last element is now 0
The reduced size of c1 is: 2
The value of the last element is now 20

reverse

Membalikkan urutan terjadinya elemen dalam daftar.

void reverse();

Contoh

// list_reverse.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;

   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 30 );

   cout << "c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   c1.reverse( );
   cout << "Reversed c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;
}
c1 = 10 20 30
Reversed c1 = 30 20 10

reverse_iterator

Jenis yang menyediakan iterator dua arah yang dapat membaca atau memodifikasi elemen dalam daftar terbalik.

typedef std::reverse_iterator<iterator> reverse_iterator;

Keterangan

Jenis reverse_iterator digunakan untuk mengulangi daftar secara terbalik.

Contoh

Lihat contoh untuk rbegin.

size

Mengembalikan jumlah elemen dalam daftar.

size_type size() const;

Tampilkan Nilai

Panjang daftar saat ini.

Contoh

// list_size.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::size_type i;

   c1.push_back( 5 );
   i = c1.size( );
   cout << "List length is " << i << "." << endl;

   c1.push_back( 7 );
   i = c1.size( );
   cout << "List length is now " << i << "." << endl;
}
List length is 1.
List length is now 2.

size_type

Jenis yang menghitung jumlah elemen dalam daftar.

typedef typename Allocator::size_type size_type;

Contoh

Lihat contoh untuk size.

sort

Mengatur elemen daftar dalam urutan naik atau sehubungan dengan beberapa urutan lain yang ditentukan pengguna.

void sort();

template <class Traits>
    void sort(Traits comp);

Parameter

comp
Operator perbandingan yang digunakan untuk memesan elemen berturut-turut.

Keterangan

Fungsi anggota pertama menempatkan elemen dalam urutan naik secara default.

Fungsi templat anggota mengurutkan elemen sesuai dengan operasi comp perbandingan kelas Traitsyang ditentukan pengguna .

Contoh

// list_sort.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter;

   c1.push_back( 20 );
   c1.push_back( 10 );
   c1.push_back( 30 );

   cout << "Before sorting: c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   c1.sort( );
   cout << "After sorting c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   c1.sort( greater<int>( ) );
   cout << "After sorting with 'greater than' operation, c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;
}
Before sorting: c1 = 20 10 30
After sorting c1 = 10 20 30
After sorting with 'greater than' operation, c1 = 30 20 10

splice

Menghapus elemen dari daftar sumber dan menyisipkannya ke dalam daftar tujuan.

// insert the entire source list
void splice(const_iterator Where, list<Type, Allocator>& Source);
void splice(const_iterator Where, list<Type, Allocator>&& Source);

// insert one element of the source list
void splice(const_iterator Where, list<Type, Allocator>& Source, const_iterator Iter);
void splice(const_iterator Where, list<Type, Allocator>&& Source, const_iterator Iter);

// insert a range of elements from the source list
void splice(const_iterator Where, list<Type, Allocator>& Source, const_iterator First, const_iterator Last);
void splice(const_iterator Where, list<Type, Allocator>&& Source, const_iterator First, const_iterator Last);

Parameter

Where
Posisi dalam daftar tujuan yang sebelumnya akan disisipkan.

Source
Daftar sumber yang akan disisipkan ke dalam daftar tujuan.

Iter
Elemen yang akan disisipkan dari daftar sumber.

First
Elemen pertama dalam rentang yang akan disisipkan dari daftar sumber.

Last
Posisi pertama di luar elemen terakhir dalam rentang yang akan disisipkan dari daftar sumber.

Keterangan

Pasangan pertama fungsi anggota menyisipkan semua elemen dalam daftar sumber ke dalam daftar tujuan sebelum posisi yang dirujuk oleh Where dan menghapus semua elemen dari daftar sumber. (&Source tidak boleh sama dengan this.)

Pasangan kedua fungsi anggota menyisipkan elemen yang dirujuk oleh Iter sebelum posisi dalam daftar tujuan yang dirujuk oleh Where dan menghapus Iter dari daftar sumber. (Jika Where == Iter || Where == ++Iter, tidak ada perubahan yang terjadi.)

Pasangan ketiga fungsi anggota menyisipkan rentang yang ditunjuk oleh [ First, Last) sebelum elemen dalam daftar tujuan yang dirujuk oleh Where dan menghapus rentang elemen tersebut dari daftar sumber. (Jika &Source == this, rentang [First, Last) tidak boleh menyertakan elemen yang ditujukkan ke . Where)

Jika splice berkisar N menyisipkan elemen, dan &Source != this, objek kelas iterator akan mengalami peningkatan N waktu.

Dalam semua kasus iterator, pointer, atau referensi yang merujuk ke elemen spliced tetap valid dan ditransfer ke kontainer tujuan.

Contoh

// list_splice.cpp
// compile with: /EHsc /W4
#include <list>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    cout << s.size() << " elements: ";

    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    list<int> c1{10,11};
    list<int> c2{20,21,22};
    list<int> c3{30,31};
    list<int> c4{40,41,42,43};

    list<int>::iterator where_iter;
    list<int>::iterator first_iter;
    list<int>::iterator last_iter;

    cout << "Beginning state of lists:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);
    cout << "c3 = ";
    print(c3);
    cout << "c4 = ";
    print(c4);

    where_iter = c2.begin();
    ++where_iter; // start at second element
    c2.splice(where_iter, c1);
    cout << "After splicing c1 into c2:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);

    first_iter = c3.begin();
    c2.splice(where_iter, c3, first_iter);
    cout << "After splicing the first element of c3 into c2:" << endl;
    cout << "c3 = ";
    print(c3);
    cout << "c2 = ";
    print(c2);

    first_iter = c4.begin();
    last_iter = c4.end();
    // set up to get the middle elements
    ++first_iter;
    --last_iter;
    c2.splice(where_iter, c4, first_iter, last_iter);
    cout << "After splicing a range of c4 into c2:" << endl;
    cout << "c4 = ";
    print(c4);
    cout << "c2 = ";
    print(c2);
}
Beginning state of lists:c1 = 2 elements: (10) (11)c2 = 3 elements: (20) (21) (22)c3 = 2 elements: (30) (31)c4 = 4 elements: (40) (41) (42) (43)After splicing c1 into c2:c1 = 0 elements:c2 = 5 elements: (20) (10) (11) (21) (22)After splicing the first element of c3 into c2:c3 = 1 elements: (31)c2 = 6 elements: (20) (10) (11) (30) (21) (22)After splicing a range of c4 into c2:c4 = 2 elements: (40) (43)c2 = 8 elements: (20) (10) (11) (30) (41) (42) (21) (22)

swap

Menukar elemen dari dua daftar.

void swap(list<Type, Allocator>& right);
friend void swap(list<Type, Allocator>& left, list<Type, Allocator>& right)

Parameter

right
Daftar yang menyediakan elemen yang akan ditukar, atau daftar yang elemennya akan ditukar dengan elemen daftar left.

left
Daftar yang elemennya akan ditukar dengan daftar right.

Contoh

// list_swap.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1, c2, c3;
   list <int>::iterator c1_Iter;

   c1.push_back( 1 );
   c1.push_back( 2 );
   c1.push_back( 3 );
   c2.push_back( 10 );
   c2.push_back( 20 );
   c3.push_back( 100 );

   cout << "The original list c1 is:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   c1.swap( c2 );

   cout << "After swapping with c2, list c1 is:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   swap( c1,c3 );

   cout << "After swapping with c3, list c1 is:";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;
}
The original list c1 is: 1 2 3
After swapping with c2, list c1 is: 10 20
After swapping with c3, list c1 is: 100

unique

Menghapus elemen duplikat yang berdekatan atau elemen yang berdekatan yang memenuhi beberapa predikat biner lainnya dari daftar.

void unique();

template <class BinaryPredicate>
void unique(BinaryPredicate pred);

Parameter

pred
Predikat biner digunakan untuk membandingkan elemen berturut-turut.

Keterangan

Fungsi ini mengasumsikan bahwa daftar diurutkan, sehingga semua elemen duplikat berdekatan. Duplikat yang tidak berdekatan tidak akan dihapus.

Fungsi anggota pertama menghapus setiap elemen yang dibandingkan dengan elemen sebelumnya.

Fungsi anggota kedua menghapus setiap elemen yang memenuhi fungsi pred predikat jika dibandingkan dengan elemen sebelumnya. Anda dapat menggunakan salah satu objek fungsi biner yang dideklarasikan di <functional> header untuk argumen pred atau Anda dapat membuat objek anda sendiri.

Contoh

// list_unique.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list <int> c1;
   list <int>::iterator c1_Iter, c2_Iter,c3_Iter;
   not_equal_to<int> mypred;

   c1.push_back( -10 );
   c1.push_back( 10 );
   c1.push_back( 10 );
   c1.push_back( 20 );
   c1.push_back( 20 );
   c1.push_back( -10 );

   cout << "The initial list is c1 =";
   for ( c1_Iter = c1.begin( ); c1_Iter != c1.end( ); c1_Iter++ )
      cout << " " << *c1_Iter;
   cout << endl;

   list <int> c2 = c1;
   c2.unique( );
   cout << "After removing successive duplicate elements, c2 =";
   for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
      cout << " " << *c2_Iter;
   cout << endl;

   list <int> c3 = c2;
   c3.unique( mypred );
   cout << "After removing successive unequal elements, c3 =";
   for ( c3_Iter = c3.begin( ); c3_Iter != c3.end( ); c3_Iter++ )
      cout << " " << *c3_Iter;
   cout << endl;
}
The initial list is c1 = -10 10 10 20 20 -10
After removing successive duplicate elements, c2 = -10 10 20 -10
After removing successive unequal elements, c3 = -10 -10

value_type

Jenis yang mewakili jenis data yang disimpan dalam daftar.

typedef typename Allocator::value_type value_type;

Keterangan

value_type adalah sinonim untuk parameter Typetemplat .

Contoh

// list_value_type.cpp
// compile with: /EHsc
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   list<int>::value_type AnInt;
   AnInt = 44;
   cout << AnInt << endl;
}
44