deque (STL/CLR)
Kelas templat menjelaskan objek yang mengontrol urutan elemen dengan panjang yang bervariasi yang memiliki akses acak. Anda menggunakan kontainer deque
untuk mengelola urutan elemen yang terlihat seperti blok penyimpanan yang berdampingan, tetapi yang dapat tumbuh atau menyusut di kedua ujungnya tanpa perlu menyalin elemen yang tersisa. Dengan demikian dapat menerapkan secara efisien .double-ended queue
(Oleh karena itu nama.)
Dalam deskripsi di bawah ini, GValue
sama seperti Value
kecuali yang terakhir adalah jenis ref, dalam hal ini adalah Value^
.
Sintaks
template<typename Value>
ref class deque
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::IDeque<GValue>
{ ..... };
Parameter
GValue
Jenis generik elemen dalam urutan terkontrol.
Nilai
Jenis elemen dalam urutan terkontrol.
Persyaratan
Header:<cliext/deque>
Namespace: cliext
Deklarasi
Definisi Tipe | Deskripsi |
---|---|
deque::const_iterator (STL/CLR) | Jenis iterator konstan untuk urutan terkontrol. |
deque::const_reference (STL/CLR) | Jenis referensi konstanta ke elemen. |
deque::const_reverse_iterator (STL/CLR) | Jenis iterator terbalik konstan untuk urutan terkontrol. |
deque::d ifference_type (STL/CLR) | Jenis jarak yang ditandatangani antara dua elemen. |
deque::generic_container (STL/CLR) | Jenis antarmuka generik untuk kontainer. |
deque::generic_iterator (STL/CLR) | Jenis iterator untuk antarmuka generik untuk kontainer. |
deque::generic_reverse_iterator (STL/CLR) | Jenis iterator terbalik untuk antarmuka generik untuk kontainer. |
deque::generic_value (STL/CLR) | Jenis elemen untuk antarmuka generik untuk kontainer. |
deque::iterator (STL/CLR) | Jenis iterator untuk urutan yang dikontrol. |
deque::reference (STL/CLR) | Jenis referensi ke elemen. |
deque::reverse_iterator (STL/CLR) | Jenis iterator terbalik untuk urutan yang dikontrol. |
deque::size_type (STL/CLR) | Jenis jarak yang ditandatangani antara dua elemen. |
deque::value_type (STL/CLR) | Jenis elemen. |
Fungsi Anggota | Deskripsi |
---|---|
deque::assign (STL/CLR) | Menggantikan semua elemen. |
deque::at (STL/CLR) | Mengakses elemen pada posisi tertentu. |
deque::back (STL/CLR) | Mengakses elemen terakhir. |
deque::begin (STL/CLR) | Menunjuk awal urutan yang dikontrol. |
deque::clear (STL/CLR) | Menghapus semua elemen. |
deque::d eque (STL/CLR) | Membuat objek kontainer. |
deque::empty (STL/CLR) | Menguji apakah tidak ada elemen yang ada. |
deque::end (STL/CLR) | Menunjuk akhir urutan yang dikontrol. |
deque::erase (STL/CLR) | Menghapus elemen pada posisi yang ditentukan. |
deque::front (STL/CLR) | Mengakses elemen pertama. |
deque::insert (STL/CLR) | Menambahkan elemen pada posisi tertentu. |
deque::p op_back (STL/CLR) | Menghapus elemen terakhir. |
deque::p op_front (STL/CLR) | Menghapus elemen pertama. |
deque::p ush_back (STL/CLR) | Menambahkan elemen terakhir baru. |
deque::p ush_front (STL/CLR) | Menambahkan elemen pertama baru. |
deque::rbegin (STL/CLR) | Menunjuk awal urutan terkontrol terbalik. |
deque::rend (STL/CLR) | Menunjuk akhir urutan terkontrol terbalik. |
deque::resize (STL/CLR) | Mengubah jumlah elemen. |
deque::size (STL/CLR) | Menghitung jumlah elemen. |
deque::swap (STL/CLR) | Menukar isi dua kontainer. |
deque::to_array (STL/CLR) | Menyalin urutan terkontrol ke array baru. |
Properti | Deskripsi |
---|---|
deque::back_item (STL/CLR) | Mengakses elemen terakhir. |
deque::front_item (STL/CLR) | Mengakses elemen pertama. |
Operator | Deskripsi |
---|---|
deque::operator!= (STL/CLR) | Menentukan apakah dua deque objek tidak sama. |
deque::operator(STL/CLR) | Mengakses elemen pada posisi tertentu. |
operator< (deque) (STL/CLR) | Menentukan apakah deque objek kurang dari objek lain deque . |
operator<= (deque) (STL/CLR) | Menentukan apakah objek deque kurang dari atau sama dengan objek lain deque . |
operator= (deque) (STL/CLR) | Menggantikan urutan terkontrol. |
operator== (deque) (STL/CLR) | Menentukan apakah deque objek sama dengan objek lain deque . |
operator> (deque) (STL/CLR) | Menentukan apakah deque objek lebih besar dari objek lain deque . |
operator>= (deque) (STL/CLR) | Menentukan apakah deque objek lebih besar dari atau sama dengan objek lain deque . |
Antarmuka
Antarmuka | Deskripsi |
---|---|
ICloneable | Menduplikasi objek. |
IEnumerable | Urutan melalui elemen. |
ICollection | Pertahankan grup elemen. |
IEnumerable<T> | Urutan melalui elemen yang ditik. |
ICollection<T> | Pertahankan grup elemen yang diketik. |
IList<T> | Pertahankan grup yang diurutkan dari elemen yang diketik. |
Nilai IDeque<> | Pertahankan kontainer generik. |
Keterangan
Objek mengalokasikan dan membebaskan penyimpanan untuk urutan yang dikontrolnya melalui array handel tersimpan yang menunjuk blok Value
elemen. Array tumbuh sesuai permintaan. Pertumbuhan terjadi sedih sehingga biaya prepending atau penambahan elemen baru adalah waktu yang konstan, dan tidak ada elemen yang tersisa yang terganggu. Anda juga dapat menghapus elemen di kedua ujungnya dalam waktu konstan, dan tanpa mengganggu elemen yang tersisa. Dengan demikian, deque adalah kandidat yang baik untuk kontainer yang mendasar untuk antrean kelas templat (STL/CLR) atau tumpukan kelas templat (STL/CLR).
Objek deque
mendukung iterator akses acak, yang berarti Anda dapat merujuk ke elemen secara langsung mengingat posisi numeriknya, dihitung dari nol untuk elemen pertama (depan), ke deque::size (STL/CLR)() - 1
untuk elemen terakhir (belakang). Ini juga berarti bahwa deque adalah kandidat yang baik untuk kontainer yang mendasar untuk kelas templat priority_queue (STL/CLR).
Iterator deque menyimpan handel ke objek deque terkait, bersama dengan bias elemen yang ditunjuknya. Anda hanya dapat menggunakan iterator dengan objek kontainer terkait. Bias elemen deque belum tentu sama dengan posisinya. Elemen pertama yang dimasukkan memiliki bias nol, elemen tambahan berikutnya memiliki bias 1, tetapi elemen prepended berikutnya memiliki bias -1.
Menyisipkan atau menghapus elemen di kedua ujungnya tidak mengubah nilai elemen yang disimpan pada bias yang valid. Namun, menyisipkan atau menghapus elemen interior dapat mengubah nilai elemen yang disimpan pada bias tertentu, sehingga nilai yang ditunjuk oleh iterator juga dapat berubah. (Kontainer mungkin harus menyalin elemen ke atas atau ke bawah untuk membuat lubang sebelum penyisipan atau untuk mengisi lubang setelah penghapusan.) Namun demikian, iterator deque tetap berlaku selama biasnya menunjuk elemen yang valid. Selain itu, iterator yang valid tetap tidak dapat direferensikasi -- Anda dapat menggunakannya untuk mengakses atau mengubah nilai elemen yang ditunjuknya -- selama biasnya tidak sama dengan bias untuk iterator yang dikembalikan oleh end()
.
Menghapus atau menghapus elemen memanggil destruktor untuk nilai tersimpannya. Menghancurkan kontainer akan menghapus semua elemen. Dengan demikian, kontainer yang jenis elemennya adalah kelas ref memastikan bahwa tidak ada elemen yang lebih lama dari kontainer. Namun, perhatikan bahwa kontainer handel tidak menghancurkan elemennya.
Anggota
deque::assign (STL/CLR)
Menggantikan semua elemen.
Sintaks
void assign(size_type count, value_type val);
template<typename InIt>
void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);
Parameter
count
Jumlah elemen yang akan disisipkan.
first
Awal rentang yang akan disisipkan.
last
Akhir rentang untuk disisipkan.
right
Enumerasi untuk disisipkan.
Val
Nilai elemen yang akan disisipkan.
Keterangan
Fungsi anggota pertama menggantikan urutan yang dikontrol dengan pengulangan elemen hitungan value val. Anda menggunakannya untuk mengisi kontainer dengan elemen yang semuanya memiliki nilai yang sama.
Jika InIt
adalah jenis bilangan bulat, fungsi anggota kedua bersifat sama dengan assign((size_type)first, (value_type)last)
. Jika tidak, ia mengganti urutan yang dikontrol dengan urutan [first
, last
). Anda menggunakannya untuk membuat urutan terkontrol salinan urutan lain.
Fungsi anggota ketiga menggantikan urutan terkontrol dengan urutan yang ditunjuk oleh kanan enumerator. Anda menggunakannya untuk membuat urutan terkontrol sebagai salinan urutan yang dijelaskan oleh enumerator.
Contoh
// cliext_deque_assign.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// assign a repetition of values
cliext::deque<wchar_t> c2;
c2.assign(6, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an iterator range
c2.assign(c1.begin(), c1.end() - 1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an enumeration
c2.assign( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
x x x x x x
a b
a b c
deque::at (STL/CLR)
Mengakses elemen pada posisi tertentu.
Sintaks
reference at(size_type pos);
Parameter
pos
Posisi elemen untuk diakses.
Keterangan
Fungsi anggota mengembalikan referensi ke elemen urutan terkontrol pada pos posisi. Anda menggunakannya untuk membaca atau menulis elemen yang posisinya Anda ketahui.
Contoh
// cliext_deque_at.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using at
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1.at(i));
System::Console::WriteLine();
// change an entry and redisplay
c1.at(1) = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
deque::back (STL/CLR)
Mengakses elemen terakhir.
Sintaks
reference back();
Keterangan
Fungsi anggota mengembalikan referensi ke elemen terakhir dari urutan terkontrol, yang harus tidak kosong. Anda menggunakannya untuk mengakses elemen terakhir, ketika Anda tahu itu ada.
Contoh
// cliext_deque_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back() = {0}", c1.back());
// alter last item and reinspect
c1.back() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back() = c
a b x
deque::back_item (STL/CLR)
Mengakses elemen terakhir.
Sintaks
property value_type back_item;
Keterangan
Properti mengakses elemen terakhir dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk membaca atau menulis elemen terakhir, ketika Anda tahu itu ada.
Contoh
// cliext_deque_back_item.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back_item = {0}", c1.back_item);
// alter last item and reinspect
c1.back_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back_item = c
a b x
deque::begin (STL/CLR)
Menunjuk awal urutan yang dikontrol.
Sintaks
iterator begin();
Keterangan
Fungsi anggota mengembalikan iterator akses acak yang menunjuk elemen pertama dari urutan yang dikontrol, atau tepat di luar akhir urutan kosong. Anda menggunakannya untuk mendapatkan iterator yang menunjuk current
awal urutan terkontrol, tetapi statusnya dapat berubah jika panjang urutan terkontrol berubah.
Contoh
// cliext_deque_begin.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::deque<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("*begin() = {0}", *it);
System::Console::WriteLine("*++begin() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*begin() = a
*++begin() = b
x y c
deque::clear (STL/CLR)
Menghapus semua elemen.
Sintaks
void clear();
Keterangan
Fungsi anggota secara efektif memanggil deque::erase (STL/CLR)(
deque::begin (STL/CLR)(),
deque::end (STL/CLR).())
Anda menggunakannya untuk memastikan bahwa urutan yang dikontrol kosong.
Contoh
// cliext_deque_clear.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
size() = 0
a b
size() = 0
deque::const_iterator (STL/CLR)
Jenis iterator konstan untuk urutan terkontrol.
Sintaks
typedef T2 const_iterator;
Keterangan
Jenis ini menjelaskan objek jenis yang tidak ditentukan T2
yang dapat berfungsi sebagai iterator akses acak konstan untuk urutan yang dikontrol.
Contoh
// cliext_deque_const_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::deque<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
System::Console::Write("{0} ", *cit);
System::Console::WriteLine();
return (0);
}
a b c
deque::const_reference (STL/CLR)
Jenis referensi konstanta ke elemen.
Sintaks
typedef value_type% const_reference;
Keterangan
Jenis ini menjelaskan referensi konstan ke elemen.
Contoh
// cliext_deque_const_reference.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::deque<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
{ // get a const reference to an element
cliext::deque<wchar_t>::const_reference cref = *cit;
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
a b c
deque::const_reverse_iterator (STL/CLR)
Jenis iterator terbalik konstan untuk urutan terkontrol.
Sintaks
typedef T4 const_reverse_iterator;
Keterangan
Jenis menjelaskan objek jenis yang tidak ditentukan T4
yang dapat berfungsi sebagai iterator terbalik konstan untuk urutan yang dikontrol.
Contoh
// cliext_deque_const_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::deque<wchar_t>::const_reverse_iterator crit = c1.rbegin();
cliext::deque<wchar_t>::const_reverse_iterator crend = c1.rend();
for (; crit != crend; ++crit)
System::Console::Write("{0} ", *crit);
System::Console::WriteLine();
return (0);
}
c b a
deque::d eque (STL/CLR)
Membuat objek kontainer.
Sintaks
deque();
deque(deque<Value>% right);
deque(deque<Value>^ right);
explicit deque(size_type count);
deque(size_type count, value_type val);
template<typename InIt>
deque(InIt first, InIt last);
deque(System::Collections::Generic::IEnumerable<Value>^ right);
Parameter
count
Jumlah elemen yang akan disisipkan.
first
Awal rentang yang akan disisipkan.
last
Akhir rentang untuk disisipkan.
right
Objek atau rentang untuk disisipkan.
Val
Nilai elemen yang akan disisipkan.
Keterangan
Konstruktor:
deque();
menginisialisasi urutan terkontrol tanpa elemen. Anda menggunakannya untuk menentukan urutan awal yang dikontrol kosong.
Konstruktor:
deque(deque<Value>% right);
menginisialisasi urutan terkontrol dengan urutan [right.begin()
, right.end()
). Anda menggunakannya untuk menentukan urutan awal yang dikontrol yang merupakan salinan urutan yang dikontrol oleh objek deque ke kanan. Untuk informasi selengkapnya tentang iterator, lihat deque::begin (STL/CLR) dan deque::end (STL/CLR).
Konstruktor:
deque(deque<Value>^ right);
menginisialisasi urutan terkontrol dengan urutan [right->begin()
, right->end()
). Anda menggunakannya untuk menentukan urutan terkontrol awal yang merupakan salinan urutan yang dikontrol oleh objek deque yang handelnya tepat.
Konstruktor:
explicit deque(size_type count);
menginisialisasi urutan terkontrol dengan elemen hitungan masing-masing dengan nilai value_type()
. Anda menggunakannya untuk mengisi kontainer dengan elemen yang semuanya memiliki nilai default.
Konstruktor:
deque(size_type count, value_type val);
menginisialisasi urutan terkontrol dengan elemen hitungan masing-masing dengan value val. Anda menggunakannya untuk mengisi kontainer dengan elemen yang semuanya memiliki nilai yang sama.
Konstruktor:
template<typename InIt>
deque(InIt first, InIt last);
menginisialisasi urutan terkontrol dengan urutan [first
, last
). Anda menggunakannya untuk membuat urutan terkontrol sebagai salinan urutan lain.
Konstruktor:
deque(System::Collections::Generic::IEnumerable<Value>^ right);
menginisialisasi urutan terkontrol dengan urutan yang ditunjuk oleh kanan enumerator. Anda menggunakannya untuk membuat urutan terkontrol salinan urutan lain yang dijelaskan oleh enumerator.
Contoh
// cliext_deque_construct.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
// construct an empty container
cliext::deque<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct with a repetition of default values
cliext::deque<wchar_t> c2(3);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// construct with a repetition of values
cliext::deque<wchar_t> c3(6, L'x');
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an iterator range
cliext::deque<wchar_t>::iterator it = c3.end();
cliext::deque<wchar_t> c4(c3.begin(), --it);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an enumeration
cliext::deque<wchar_t> c5( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c3);
for each (wchar_t elem in c5)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
cliext::deque<wchar_t> c7(c3);
for each (wchar_t elem in c7)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying a container handle
cliext::deque<wchar_t> c8(%c3);
for each (wchar_t elem in c8)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0
x x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x
deque::d ifference_type (STL/CLR)
Jenis jarak yang ditandatangani antara dua elemen.
Sintaks
typedef int difference_type;
Keterangan
Jenis menjelaskan jumlah elemen yang ditandatangani.
Contoh
// cliext_deque_difference_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::deque<wchar_t>::difference_type diff = 0;
for (cliext::deque<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it) ++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
// compute negative difference
diff = 0;
for (cliext::deque<wchar_t>::iterator it = c1.end();
it != c1.begin(); --it) --diff;
System::Console::WriteLine("begin()-end() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
begin()-end() = -3
deque::empty (STL/CLR)
Menguji apakah tidak ada elemen yang ada.
Sintaks
bool empty();
Keterangan
Fungsi anggota mengembalikan true untuk urutan yang dikontrol kosong. Ini setara dengan deque::size (STL/CLR)() == 0
. Anda menggunakannya untuk menguji apakah deque kosong.
Contoh
// cliext_deque_empty.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
deque::end (STL/CLR)
Menunjuk akhir urutan yang dikontrol.
Sintaks
iterator end();
Keterangan
Fungsi anggota mengembalikan iterator akses acak yang menunjuk tepat di luar akhir urutan yang dikontrol. Anda menggunakannya untuk mendapatkan iterator yang menunjuk current
akhir urutan terkontrol, tetapi statusnya dapat berubah jika panjang urutan terkontrol berubah.
Contoh
// cliext_deque_end.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last two items
cliext::deque<wchar_t>::iterator it = c1.end();
--it;
System::Console::WriteLine("*-- --end() = {0}", *--it);
System::Console::WriteLine("*--end() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --end() = b
*--end() = c
a x y
deque::erase (STL/CLR)
Menghapus elemen pada posisi yang ditentukan.
Sintaks
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Parameter
first
Awal rentang untuk menghapus.
last
Akhir rentang untuk menghapus.
di mana
Elemen untuk menghapus.
Keterangan
Fungsi anggota pertama menghapus elemen urutan terkontrol yang ditujukkan ke tempatnya. Anda menggunakannya untuk menghapus satu elemen.
Fungsi anggota kedua menghapus elemen urutan terkontrol dalam rentang [first
, last
). Anda menggunakannya untuk menghapus nol atau lebih elemen yang berdada.
Kedua fungsi anggota mengembalikan iterator yang menunjuk elemen pertama yang tersisa di luar elemen apa pun yang dihapus, atau deque::end (STL/CLR)()
jika tidak ada elemen tersebut.
Saat menghapus elemen, jumlah salinan elemen bersifat linier dalam jumlah elemen antara akhir penghapusan dan akhir urutan yang lebih dekat. (Saat menghapus satu atau beberapa elemen di salah satu akhir urutan, tidak ada salinan elemen yang terjadi.)
Contoh
// cliext_deque_erase.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase an element and reinspect
System::Console::WriteLine("erase(begin()) = {0}",
*c1.erase(c1.begin()));
// add elements and display " b c d e"
c1.push_back(L'd');
c1.push_back(L'e');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase all but end
cliext::deque<wchar_t>::iterator it = c1.end();
System::Console::WriteLine("erase(begin(), end()-1) = {0}",
*c1.erase(c1.begin(), --it));
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
erase(begin()) = b
b c d e
erase(begin(), end()-1) = e
size() = 1
deque::front (STL/CLR)
Mengakses elemen pertama.
Sintaks
reference front();
Keterangan
Fungsi anggota mengembalikan referensi ke elemen pertama dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk membaca atau menulis elemen pertama, ketika Anda tahu itu ada.
Contoh
// cliext_deque_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front() = {0}", c1.front());
// alter first item and reinspect
c1.front() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front() = a
x b c
deque::front_item (STL/CLR)
Mengakses elemen pertama.
Sintaks
property value_type front_item;
Keterangan
Properti mengakses elemen pertama dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk membaca atau menulis elemen pertama, ketika Anda tahu itu ada.
Contoh
// cliext_deque_front_item.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front_item = {0}", c1.front_item);
// alter first item and reinspect
c1.front_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front_item = a
x b c
deque::generic_container (STL/CLR)
Jenis antarmuka generik untuk kontainer.
Sintaks
typedef Microsoft::VisualC::StlClr::
IDeque<generic_value>
generic_container;
Keterangan
Jenis menjelaskan antarmuka generik untuk kelas kontainer templat ini.
Contoh
// cliext_deque_generic_container.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->insert(gc1->end(), L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push_back(L'e');
System::Collections::IEnumerator^ enum1 =
gc1->GetEnumerator();
while (enum1->MoveNext())
System::Console::Write("{0} ", enum1->Current);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
deque::generic_iterator (STL/CLR)
Jenis iterator untuk digunakan dengan antarmuka generik untuk kontainer.
Sintaks
typedef Microsoft::VisualC::StlClr::Generic::
ContainerRandomAccessIterator<generic_value> generic_iterator;
Keterangan
Jenis ini menjelaskan iterator generik yang dapat digunakan dengan antarmuka generik untuk kelas kontainer templat ini.
Contoh
// cliext_deque_generic_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
deque::generic_reverse_iterator (STL/CLR)
Jenis iterator terbalik untuk digunakan dengan antarmuka generik untuk kontainer.
Sintaks
typedef Microsoft::VisualC::StlClr::Generic::
ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;
Keterangan
Jenis ini menjelaskan iterator terbalik generik yang dapat digunakan dengan antarmuka generik untuk kelas kontainer templat ini.
Contoh
// cliext_deque_generic_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_reverse_iterator gcit = gc1->rbegin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a c c
deque::generic_value (STL/CLR)
Jenis elemen untuk digunakan dengan antarmuka generik untuk kontainer.
Sintaks
typedef GValue generic_value;
Keterangan
Jenis menjelaskan objek jenis GValue
yang menjelaskan nilai elemen tersimpan untuk digunakan dengan antarmuka generik untuk kelas kontainer templat ini.
Contoh
// cliext_deque_generic_value.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::deque<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
deque::insert (STL/CLR)
Menambahkan elemen pada posisi tertentu.
Sintaks
iterator insert(iterator where, value_type val);
void insert(iterator where, size_type count, value_type val);
template<typename InIt>
void insert(iterator where, InIt first, InIt last);
void insert(iterator where,
System::Collections::Generic::IEnumerable<Value>^ right);
Parameter
count
Jumlah elemen yang akan disisipkan.
first
Awal rentang yang akan disisipkan.
last
Akhir rentang untuk disisipkan.
right
Enumerasi untuk disisipkan.
Val
Nilai elemen yang akan disisipkan.
di mana
Di mana dalam kontainer untuk disisipkan sebelumnya.
Keterangan
Setiap fungsi anggota menyisipkan, sebelum elemen menunjuk ke dengan di mana dalam urutan yang dikontrol, urutan yang ditentukan oleh operand yang tersisa.
Fungsi anggota pertama menyisipkan elemen dengan value val dan mengembalikan iterator yang menunjuk elemen yang baru dimasukkan. Anda menggunakannya untuk menyisipkan satu elemen sebelum tempat yang ditunjuk oleh iterator.
Fungsi anggota kedua menyisipkan pengulangan elemen hitungan nilai val. Anda menggunakannya untuk menyisipkan nol atau lebih elemen yang berdampingan yang semuanya merupakan salinan dari nilai yang sama.
Jika InIt
adalah jenis bilangan bulat, fungsi anggota ketiga berulah sama dengan insert(where, (size_type)first, (value_type)last)
. Jika tidak, ia menyisipkan urutan [first
, last
). Anda menggunakannya untuk menyisipkan nol atau lebih elemen yang berdisipatan yang disalin dari urutan lain.
Fungsi anggota keempat menyisipkan urutan yang ditunjuk oleh kanan. Anda menggunakannya untuk menyisipkan urutan yang dijelaskan oleh enumerator.
Saat menyisipkan elemen tunggal, jumlah salinan elemen bersifat linier dalam jumlah elemen antara titik penyisipan dan akhir urutan yang lebih dekat. (Saat menyisipkan satu atau beberapa elemen di salah satu akhir urutan, tidak ada salinan elemen yang terjadi.) Jika InIt
merupakan iterator input, fungsi anggota ketiga secara efektif melakukan penyisipan tunggal untuk setiap elemen dalam urutan. Jika tidak, saat menyisipkan N
elemen, jumlah salinan elemen bersifat linier ditambah N
jumlah elemen antara titik penyisipan dan akhir urutan yang lebih dekat.
Contoh
// cliext_deque_insert.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a single value using iterator
cliext::deque<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("insert(begin()+1, L'x') = {0}",
*c1.insert(++it, L'x'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a repetition of values
cliext::deque<wchar_t> c2;
c2.insert(c2.begin(), 2, L'y');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an iterator range
it = c1.end();
c2.insert(c2.end(), c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an enumeration
c2.insert(c2.begin(), // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
insert(begin()+1, L'x') = x
a x b c
y y
y y a x b
a x b c y y a x b
deque::iterator (STL/CLR)
Jenis iterator untuk urutan yang dikontrol.
Sintaks
typedef T1 iterator;
Keterangan
Jenis ini menjelaskan objek jenis yang tidak ditentukan T1
yang dapat berfungsi sebagai iterator akses acak untuk urutan yang dikontrol.
Contoh
// cliext_deque_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::deque<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
// alter first element and redisplay
it = c1.begin();
*it = L'x';
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
x b c
deque::operator!= (STL/CLR)
Hapus perbandingan yang tidak sama.
Sintaks
template<typename Value>
bool operator!=(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan !(left == right)
. Anda menggunakannya untuk menguji apakah kiri tidak diurutkan sama dengan kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_ne.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
deque::operator(STL/CLR)
Mengakses elemen pada posisi tertentu.
Sintaks
reference operator[](size_type pos);
Parameter
pos
Posisi elemen untuk diakses.
Keterangan
Operator anggota mengembalikan referensi ke elemen pada posisi pos. Anda menggunakannya untuk mengakses elemen yang posisinya Anda ketahui.
Contoh
// cliext_deque_operator_sub.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using subscripting
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
// change an entry and redisplay
c1[1] = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
deque::p op_back (STL/CLR)
Menghapus elemen terakhir.
Sintaks
void pop_back();
Keterangan
Fungsi anggota menghapus elemen terakhir dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk mempersingkat deque dengan satu elemen di bagian belakang.
Contoh
// cliext_deque_pop_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_back();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b
deque::p op_front (STL/CLR)
Menghapus elemen pertama.
Sintaks
void pop_front();
Keterangan
Fungsi anggota menghapus elemen pertama dari urutan yang dikontrol, yang harus tidak kosong. Anda menggunakannya untuk mempersingkat deque dengan satu elemen di bagian depan.
Contoh
// cliext_deque_pop_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_front();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
b c
deque::p ush_back (STL/CLR)
Menambahkan elemen terakhir baru.
Sintaks
void push_back(value_type val);
Keterangan
Fungsi anggota menyisipkan elemen dengan nilai val
di akhir urutan yang dikontrol. Anda menggunakannya untuk menambahkan elemen lain ke deque.
Contoh
// cliext_deque_push_back.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
deque::p ush_front (STL/CLR)
Menambahkan elemen pertama baru.
Sintaks
void push_front(value_type val);
Keterangan
Fungsi anggota menyisipkan elemen dengan nilai val
di awal urutan yang dikontrol. Anda menggunakannya untuk menambahkan elemen lain ke deque.
Contoh
// cliext_deque_push_front.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_front(L'a');
c1.push_front(L'b');
c1.push_front(L'c');
// display contents " c b a"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
c b a
deque::rbegin (STL/CLR)
Menunjuk awal urutan terkontrol terbalik.
Sintaks
reverse_iterator rbegin();
Keterangan
Fungsi anggota mengembalikan iterator terbalik yang menunjuk elemen terakhir dari urutan yang dikontrol, atau tepat di luar awal urutan kosong. Oleh karena itu, ini menunjuk beginning
urutan terbalik. Anda menggunakannya untuk mendapatkan iterator yang menunjuk current
awal urutan terkontrol yang terlihat dalam urutan terbalik, tetapi statusnya dapat berubah jika panjang urutan terkontrol berubah.
Contoh
// cliext_deque_rbegin.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items in reversed sequence
cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
System::Console::WriteLine("*rbegin() = {0}", *rit);
System::Console::WriteLine("*++rbegin() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*rbegin() = c
*++rbegin() = b
a y x
deque::reference (STL/CLR)
Jenis referensi ke elemen.
Sintaks
typedef value_type% reference;
Keterangan
Jenis ini menjelaskan referensi ke elemen.
Contoh
// cliext_deque_reference.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::deque<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
{ // get a reference to an element
cliext::deque<wchar_t>::reference ref = *it;
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
// modify contents " a b c"
for (it = c1.begin(); it != c1.end(); ++it)
{ // get a reference to an element
cliext::deque<wchar_t>::reference ref = *it;
ref += (wchar_t)(L'A' - L'a');
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
return (0);
}
a b c
A B C
deque::rend (STL/CLR)
Menunjuk akhir urutan terkontrol terbalik.
Sintaks
reverse_iterator rend();
Keterangan
Fungsi anggota mengembalikan iterator terbalik yang menunjuk tepat di luar awal urutan yang dikontrol. Oleh karena itu, ini menunjuk end
urutan terbalik. Anda menggunakannya untuk mendapatkan iterator yang menunjuk current
akhir urutan terkontrol yang terlihat dalam urutan terbalik, tetapi statusnya dapat berubah jika panjang urutan terkontrol berubah.
Contoh
// cliext_deque_rend.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
cliext::deque<wchar_t>::reverse_iterator rit = c1.rend();
--rit;
System::Console::WriteLine("*-- --rend() = {0}", *--rit);
System::Console::WriteLine("*--rend() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --rend() = b
*--rend() = a
y x c
deque::resize (STL/CLR)
Mengubah jumlah elemen.
Sintaks
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Parameter
new_size
Ukuran baru urutan terkontrol.
Val
Nilai elemen padding.
Keterangan
Anggota berfungsi memastikan bahwa deque::size (STL/CLR)()
selanjutnya mengembalikan new_size. Jika harus membuat urutan terkontrol lebih lama, fungsi anggota pertama menambahkan elemen dengan nilai value_type()
, sementara fungsi anggota kedua menambahkan elemen dengan value val. Untuk membuat urutan terkontrol lebih pendek, kedua fungsi anggota secara efektif menghapus elemen terakhir deque::size (STL/CLR)() -
new_size
kali. Anda menggunakannya untuk memastikan bahwa urutan terkontrol memiliki ukuran new_size, dengan memangkas atau mengayuh urutan yang dikontrol saat ini.
Contoh
// cliext_deque_resize.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
// construct an empty container and pad with default values
cliext::deque<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
c1.resize(4);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// resize to empty
c1.resize(0);
System::Console::WriteLine("size() = {0}", c1.size());
// resize and pad
c1.resize(5, L'x');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0 0
size() = 0
x x x x x
deque::reverse_iterator (STL/CLR)
Jenis iterator terbalik untuk urutan yang dikontrol.
Sintaks
typedef T3 reverse_iterator;
Keterangan
Jenis menjelaskan objek jenis yang tidak ditentukan T3
yang dapat berfungsi sebagai iterator terbalik untuk urutan yang dikontrol.
Contoh
// cliext_deque_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
// alter first element and redisplay
rit = c1.rbegin();
*rit = L'x';
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
return (0);
}
c b a
x b a
deque::size (STL/CLR)
Menghitung jumlah elemen.
Sintaks
size_type size();
Keterangan
Fungsi anggota mengembalikan panjang urutan yang dikontrol. Anda menggunakannya untuk menentukan jumlah elemen yang saat ini berada dalam urutan terkontrol. Jika yang Anda pedulikan hanyalah apakah urutan memiliki ukuran bukan nol, lihat deque::empty (STL/CLR)()
.
Contoh
// cliext_deque_size.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0} after clearing", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 0 after clearing
size() = 2 after adding 2
deque::size_type (STL/CLR)
Jenis jarak yang ditandatangani antara dua elemen.
Sintaks
typedef int size_type;
Keterangan
Jenis ini menjelaskan jumlah elemen non-negatif.
Contoh
// cliext_deque_size_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::deque<wchar_t>::size_type diff = c1.end() - c1.begin();
System::Console::WriteLine("end()-begin() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
deque::swap (STL/CLR)
Menukar isi dua kontainer.
Sintaks
void swap(deque<Value>% right);
Parameter
right
Kontainer untuk menukar konten dengan.
Keterangan
Fungsi anggota menukar urutan terkontrol antara *this
dan kanan. Ini melakukannya dalam waktu konstan dan tidak melemparkan pengecualian. Anda menggunakannya sebagai cara cepat untuk bertukar konten dua kontainer.
Contoh
// cliext_deque_swap.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct another container with repetition of values
cliext::deque<wchar_t> c2(5, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// swap and redisplay
c1.swap(c2);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
x x x x x
x x x x x
a b c
deque::to_array (STL/CLR)
Menyalin urutan terkontrol ke array baru.
Sintaks
cli::array<Value>^ to_array();
Keterangan
Fungsi anggota mengembalikan array yang berisi urutan terkontrol. Anda menggunakannya untuk mendapatkan salinan urutan terkontrol dalam bentuk array.
Contoh
// cliext_deque_to_array.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push_back(L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
deque::value_type (STL/CLR)
Jenis elemen.
Sintaks
typedef Value value_type;
Keterangan
Jenisnya adalah sinonim untuk parameter templat Nilai.
Contoh
// cliext_deque_value_type.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using value_type
for (cliext::deque<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it)
{ // store element in value_type object
cliext::deque<wchar_t>::value_type val = *it;
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
operator<
(deque) (STL/CLR)
Hapus kurang dari perbandingan.
Sintaks
template<typename Value>
bool operator<(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan true jika, untuk posisi i
terendah yang !(right[i] < left[i])
juga benar bahwa left[i] < right[i]
. Jika tidak, itu mengembalikan left->size() < right->size()
Anda menggunakannya untuk menguji apakah kiri diurutkan sebelum kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_lt.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<=
(deque) (STL/CLR)
Hapus kurang dari atau perbandingan yang sama.
Sintaks
template<typename Value>
bool operator<=(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan !(right < left)
. Anda menggunakannya untuk menguji apakah kiri tidak diurutkan setelah kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_le.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator= (deque) (STL/CLR)
Menggantikan urutan terkontrol.
Sintaks
deque<Value>% operator=(deque<Value>% right);
Parameter
right
Kontainer untuk disalin.
Keterangan
Operator anggota menyalin langsung ke objek, lalu mengembalikan *this
. Anda menggunakannya untuk mengganti urutan terkontrol dengan salinan urutan terkontrol di sebelah kanan.
Contoh
// cliext_deque_operator_as.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2 = c1;
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
operator== (deque) (STL/CLR)
Hapus perbandingan yang sama.
Sintaks
template<typename Value>
bool operator==(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan true hanya jika urutan yang dikontrol oleh kiri dan kanan memiliki panjang yang sama dan, untuk setiap posisi i
, left[i] ==
right[i]
. Anda menggunakannya untuk menguji apakah kiri diurutkan sama dengan kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_eq.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator>
(deque) (STL/CLR)
Hapus lebih besar dari perbandingan.
Sintaks
template<typename Value>
bool operator>(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan right
<
left
. Anda menggunakannya untuk menguji apakah kiri diurutkan setelah kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_gt.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>=
(deque) (STL/CLR)
Hapus lebih besar dari atau perbandingan yang sama.
Sintaks
template<typename Value>
bool operator>=(deque<Value>% left,
deque<Value>% right);
Parameter
left
Kontainer kiri untuk dibandingkan.
right
Kontainer yang tepat untuk dibandingkan.
Keterangan
Fungsi operator mengembalikan !(left
<
right)
. Anda menggunakannya untuk menguji apakah kiri tidak diurutkan sebelum kanan ketika dua deque dibandingkan elemen berdasarkan elemen.
Contoh
// cliext_deque_operator_ge.cpp
// compile with: /clr
#include <cliext/deque>
int main()
{
cliext::deque<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
cliext::deque<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False