Cara Menggunakan V + C

How Use C Vector



Pengenalan

Array adalah rangkaian jenis objek yang sama di lokasi memori berturut-turut. Susunan tidak dapat meningkatkan panjang bijih. Vektor seperti susunan, tetapi panjangnya dapat ditingkatkan atau dikurangkan. Oleh itu, vektor mempunyai lebih banyak operasi daripada array.

C ++ mempunyai banyak perpustakaan, semuanya membentuk Perpustakaan Standard C ++. Salah satu perpustakaan ini adalah perpustakaan kontena. Bekas adalah kumpulan objek, dan operasi tertentu dapat dilakukan pada koleksi. Bekas C ++ boleh dikelompokkan menjadi dua set: bekas bekas dan bekas bersekutu. Bekas urutan adalah vektor, susunan (bukan susunan yang sama yang dibincangkan sebelumnya), deque, forward_list, dan list. Ini adalah koleksi yang berbeza (struktur data seperti array), dan masing-masing menawarkan pertukaran yang berbeza.







Mana-mana pengaturcara harus tahu bagaimana memutuskan sama ada menggunakan vektor, array, deque, forward_list, atau senarai. Apabila pengaturcara memerlukan struktur yang memerlukan lebih banyak operasi daripada yang berkaitan dengan array biasa, array biasa tidak boleh digunakan.



Sekiranya tugas itu melibatkan penyisipan dan penghapusan yang kerap di tengah-tengah urutan, maka senarai atau senarai hadapan harus digunakan. Sekiranya tugas itu melibatkan penyisipan dan penghapusan yang kerap pada awal atau akhir urutan, maka deque harus digunakan. Vektor harus digunakan apabila operasi seperti ini tidak diperlukan.



Artikel ini menunjukkan cara menggunakan vektor C ++. Anda memerlukan sedikit pengetahuan mengenai petunjuk, rujukan, dan susunan C ++ untuk memahami artikel ini.





Kelas dan Objek

Kelas adalah sekumpulan pemboleh ubah dan fungsi yang berfungsi bersama, di mana pemboleh ubah tidak mempunyai nilai yang ditetapkan. Apabila nilai diberikan kepada pemboleh ubah, kelas menjadi objek. Nilai yang berbeza yang diberikan kepada kelas yang sama menghasilkan objek yang berbeza; iaitu, objek yang berbeza dapat dari kelas yang sama tetapi mempunyai nilai yang berbeza. Membuat objek dari kelas juga dikenali sebagai objek objek.

Vektor istilah menggambarkan kelas. Objek yang dibuat dari vektor mempunyai nama yang dipilih oleh pengaturcara.



Fungsi yang tergolong dalam kelas diperlukan untuk membuat objek dari kelas. Dalam C ++, fungsi itu mempunyai nama yang sama dengan nama kelas. Objek yang berbeza yang dibuat (disusun) dari kelas mempunyai nama berbeza yang diberikan kepada masing-masing oleh pengaturcara.

Membuat objek dari kelas bermaksud membina objek; ia juga bermaksud memberi contoh objek.

Kelas Vektor

Kelas vektor telah ditentukan dan berada di perpustakaan. Untuk menggunakan kelas vektor, pengaturcara mesti memasukkan tajuk vektor dalam fail dengan arahan praprosesan berikut:

#sertakan

Setelah tajuk disertakan, semua ciri vektor (data anggota dan fungsi anggota) dapat diakses. Untuk menggunakan objek hitungan untuk mengeluarkan data ke terminal (konsol), tajuk objek juga harus disertakan. Untuk menulis program dengan vektor, minimum, tajuk berikut mesti disertakan:

#sertakan
#sertakan

Memasang Vektor

intfoo[10];

Di atas adalah pengisytiharan larik dengan nama foo dan bilangan unsur 10. Ini adalah susunan bilangan bulat. Pengisytiharan vektor adalah serupa. Untuk vektor, bilangan elemen adalah pilihan, kerana panjang vektor boleh meningkat atau menurun.

Pada tahap ini dalam program, kelas vektor telah ditentukan di perpustakaan, dan tajuk telah disertakan. Vektor boleh dibuat seperti berikut:

Jam::vektor <int>vtr(8);

Di sini, vektor adalah fungsi pembina khas. Jenis data yang akan dipegang oleh vektor adalah int, dalam kurungan sudut. Istilah vtr adalah nama yang dipilih oleh pengaturcara untuk vektor. Akhirnya, 8, dalam kurungan, adalah bilangan tentatif bilangan bulat yang akan dimiliki vektor.

Istilah std bermaksud ruang nama standard. Istilah ini mesti diikuti oleh titik dua, dalam konteks ini. Sesiapa sahaja boleh menulis perpustakaan kelas vektor mereka sendiri dan menggunakannya. Walau bagaimanapun, C ++ sudah mempunyai perpustakaan standard dengan nama standard, termasuk vektor. Untuk menggunakan nama standard, nama standard mesti didahului oleh std ::. Untuk mengelakkan mengetik std :: setiap kali dalam program untuk nama standard, fail program boleh bermula seperti berikut:

#sertakan
#sertakan
menggunakan namespace std;

Melebihi Fungsi

Apabila dua atau lebih tandatangan fungsi yang berbeza mempunyai nama yang sama, nama itu dikatakan berlebihan. Apabila satu fungsi dipanggil, bilangan dan jenis argumen menentukan fungsi mana yang dijalankan.

Membina Vektor

Membina vektor bermaksud membuat (membuat) objek vektor. Fungsi konstruktor berlebihan seperti berikut:

nama vektor

Ini membuat vektor panjang sifar dan jenis T. Pernyataan berikut membuat vektor panjang sifar jenis terapung dengan nama vtr:

vektor<terapung>vtr;

nama vektor (n)

Ini membuat vektor dengan unsur n jenis T. Pernyataan untuk vektor ini dengan empat elemen apungan adalah seperti berikut:

vektor<terapung>vtr(4);

nama vektor (n, t)

Ini mewujudkan vektor unsur n yang dimulakan kepada nilai t. Pernyataan berikut membuat vektor 5 elemen, di mana setiap elemen mempunyai nilai 3.4:

vektor<terapung>vtr(5, 3.4);

Membina dengan Permulaan

Vektor boleh dibina (dibuat) dan dimulakan pada masa yang sama, dengan salah satu daripada dua cara berikut:

vektor<terapung>vtr= {1.1, 2.2, 3.3, 4.4};

Atau

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};

Perhatikan bahawa tidak ada tanda kurung setelah nama objek. Tanda kurung yang digunakan tepat setelah nama objek harus mempunyai senarai inisialisasi, seperti berikut:

vektor<terapung>vtr({1.1, 2.2, 3.3, 4.4});

Vektor boleh dibina dan dimulakan kemudian dengan senarai pemula. Dalam kes ini, tanda kurung tidak akan digunakan:

vektor<terapung>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

vektor V2 (V1)

Ini adalah penyusun salinan. Ia membuat vektor V2 sebagai salinan vektor V1. Kod berikut menggambarkan ini:

vektor<terapung>vtr1(5, 3.4);
vektor<terapung>vtr2(vtr1);

Menetapkan Vektor semasa Pembinaan

Semasa pembinaan, vektor kosong dapat dibuat sementara yang lain ditugaskan kepadanya, seperti berikut:

vektor<terapung>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<terapung>vtr2=vtr1;

Pernyataan kedua bersamaan dengan:

vektor<terapung>vtr2= {1.1, 2.2, 3.3, 4.4};

vektor const

Vektor const adalah vektor yang elemennya tidak dapat diubah. Nilai dalam vektor ini hanya boleh dibaca. Semasa dibuat, vektor muncul seperti berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};

Dalam jenis vektor ini, tidak ada unsur yang dapat ditambahkan atau dikeluarkan. Lebih-lebih lagi, tidak ada nilai yang dapat diubah.

Membina dengan Iterator

Templat memberikan gambaran umum untuk jenis data. Iterator memberikan gambaran umum pengimbasan melalui nilai-nilai wadah. Sintaks untuk membuat vektor dengan iterator adalah seperti berikut:

templat<kelas InputIterator>
vektor(InputIterator terlebih dahulu,InputIterator terakhir,penyambungPeruntukkan& =Peruntukkan());

Ini membina vektor untuk julat [pertama, terakhir] menggunakan peruntukan yang ditentukan, yang akan dibincangkan kemudian dalam artikel ini.

Menghancurkan Vektor

Untuk menghancurkan vektor, biarkan ia keluar dari ruang lingkup dan menghancurkan ditangani secara automatik.

Kapasiti Vektor

size_type kapasiti () const kecuali

Jumlah elemen yang dapat dipegang oleh vektor tanpa memerlukan pengagihan semula dikembalikan oleh fungsi anggota kapasiti. Segmen kod untuk ini adalah seperti berikut:

vektor<terapung>vtr(4);
intpada satu=vtr.kapasiti();
kos<<pada satu<< ' n';

Keluarannya adalah 4.

rizab (n)

Ruang memori tidak selalu tersedia secara bebas. Ruang tambahan boleh ditempah terlebih dahulu. Pertimbangkan segmen kod berikut:

vektor<terapung>vtr(4);
vtr.rizab(6);
kos<<vtr.kapasiti() << ' n';

Keluarannya adalah 6. Jadi, ruang tambahan yang disediakan adalah 6 - 4 = 2 elemen. Fungsi kembali tidak sah.

saiz () const kecuali

Ini mengembalikan bilangan elemen dalam vektor. Kod berikut menggambarkan fungsi ini:

vektor<terapung>vtr(4);
terapungs=vtr.ukuran();
kos<<s<< ' n';

Keluarannya adalah 4.

shrink_to_fit ()

Setelah memberikan kapasiti tambahan kepada vektor dengan fungsi cadangan (), vektor dapat diukur ke bawah agar sesuai dengan ukuran asalnya. Kod berikut menggambarkan ini:

vektor<terapung>vtr(4);
vtr.rizab(6);
vtr.mengecilkan_keperluan();
ints=vtr.ukuran();
kos<<s<< ' n';

Keluarannya adalah 4 dan bukan 6. Fungsi kembali tidak sah.

ubah saiz (sz), ubah saiz (sz, c)

Ini mengubah saiz vektor. Sekiranya ukuran baru lebih kecil daripada ukuran lama, maka elemen ke hujungnya akan terhapus. Sekiranya ukuran baru lebih panjang, maka beberapa nilai lalai ditambahkan hingga akhir. Untuk mempunyai nilai tambah tertentu, gunakan fungsi ubah ukuran () dengan dua argumen. Segmen kod berikut menggambarkan penggunaan kedua fungsi ini:

vektor<terapung>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.ubah saiz(2);
kos<< 'Saiz baru vtr1:' <<vtr1.ukuran() << ' n';
vektor<terapung>vtr2{1.1, 2.2};
vtr2.ubah saiz(4, 8.8);
kos<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Keluarannya adalah seperti berikut:

Saiz baru vtr1: 2
vtr2: 1.1 2.2 8.8 8.8

Fungsi kembali terbatal.

kosong () const kecuali

Fungsi ini mengembalikan 1 untuk true jika tidak ada unsur dalam vektor dan 0 untuk false jika vektor kosong. Sekiranya vektor mempunyai 4 lokasi untuk jenis data tertentu, seperti float, tanpa nilai float, maka vektor itu tidak kosong. Kod berikut menggambarkan ini:

vektor<terapung>vtr;
kos<<vtr.kosong() << ' n';
vektor<terapung>vt(4);
kos<<jadi itukosong() << ' n';

vektor<terapung>v(4,3.5);
kos<<v.kosong() << ' n';

Keluarannya adalah seperti berikut:

1
0
0

Akses Elemen Vektor

Vektor boleh sub-skrip (diindeks) seperti array. Pengiraan indeks bermula dari sifar.

vektorNama [i]

VectorName operasi [i] mengembalikan rujukan ke elemen di iikaindeks vektor. Kod berikut mengeluarkan 3.3 untuk vektor di atas:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr[2];
kos<<fl<< ' n';

vektorNama [i] konst

VectorName operasi [i] const dijalankan dan bukannya vectorName [i] apabila vektor adalah vektor malar. Operasi ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr[2];
kos<<fl<< ' n';

Ungkapan mengembalikan rujukan tetap ke iikaelemen vektor.

Menetapkan Nilai dengan Langganan

Nilai dapat diberikan kepada vektor tidak tetap, seperti berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
kos<<vtr[2] << ' n';

Keluarannya ialah 8.8.

vectorName.at (i)

vectorName.at (i) adalah seperti vectorName [i], tetapi vectorName.at (i) lebih dipercayai. Kod berikut menunjukkan bagaimana vektor ini harus digunakan:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.di(2);
kos<<fl<< ' n';
di()adalah ahli vektorfungsi.

vectorName.at (i) konst

vectorName.at (i) const adalah seperti vectorName [i] const, tetapi vectorName.at (i) const lebih dipercayai. vectorName.at (i) const dijalankan dan bukannya vectorName.at (i) apabila vektor adalah vektor malar. Vektor ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.di(2);
kos<<fl<< ' n';
di() penyambungadalah ahli vektorfungsi.

Menetapkan Nilai dengan Fungsi at ()

Nilai dapat diberikan kepada vektor tidak tetap dengan fungsi at (), seperti berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vtr.di(2) = 8.8;
kos<<vtr[2] << ' n';

Keluarannya ialah 8.8.

Masalah dengan Sub-Skrip

Masalah dengan sub-skrip (pengindeksan) adalah bahawa jika indeks berada di luar jangkauan, sifar dapat dikembalikan atau kesalahan mungkin dikeluarkan pada waktu berjalan.

depan ()

Ini mengembalikan rujukan ke elemen vektor pertama tanpa membuang elemen tersebut. Keluaran kod berikut adalah 1.1.

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.depan();
kos<<fl<< ' n';

Elemen tidak dikeluarkan dari vektor.

depan () konst

Apabila pembinaan vektor didahului oleh const, ekspresi depan () const dijalankan bukan depan (). Ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.depan();
kos<<fl<< ' n';

Rujukan tetap dikembalikan. Elemen tidak dikeluarkan dari vektor.

belakang ()

Ini mengembalikan rujukan ke elemen terakhir vektor tanpa mengeluarkan elemen. Keluaran kod berikut adalah 4.4.

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.belakang();
kos<<fl<< ' n';

belakang () konst

Apabila pembinaan vektor didahului oleh const, ungkapan kembali () const dijalankan dan bukannya belakang (). Ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
terapungfl=vtr.belakang();
kos<<fl<< ' n';

Rujukan tetap dikembalikan. Elemen tidak dikeluarkan dari vektor.

Akses Data Vektor

data () kecuali; data () const kecuali;

Salah satu daripada ini mengembalikan penunjuk sehingga [data (), data () + ukuran ()) adalah julat yang sah.

Perkara ini akan dibahas dengan lebih terperinci kemudian dalam artikel.

Mengembalikan Iterator dan Vektor

Iterator adalah seperti penunjuk tetapi mempunyai lebih banyak fungsi daripada penunjuk.

mulakan () kecuali

Mengembalikan iterator yang menunjukkan elemen vektor pertama, seperti pada segmen kod berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::iteratoriter=vtr.bermula();
kos<< *iter<< ' n';

Keluarannya adalah 1.1. Perhatikan bahawa deklarasi yang menerima iterator telah diisytiharkan. Iterator diredferensikan dalam ungkapan kembali untuk mendapatkan nilai dengan cara yang sama seperti penunjuk yang diturunkan.

bermula () const kecuali;

Mengembalikan lelaran yang menunjukkan elemen vektor pertama. Apabila pembinaan vektor didahului oleh const, ungkapan mula () const dijalankan dan bukannya mula (). Dalam keadaan ini, elemen yang sesuai dalam vektor tidak dapat diubah. Ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::const_iteratoriter=vtr.bermula();
kos<< *iter<< ' n';

Keluarannya adalah 1.1. Perhatikan bahawa const_iterator telah digunakan kali ini dan bukan hanya iterator untuk menerima iterator yang dikembalikan.

akhir () kecuali

Mengembalikan iterator yang menunjukkan tepat di luar elemen vektor terakhir. Pertimbangkan segmen kod berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::iteratoriter=vtr.akhir();
kos<< *iter<< ' n';

Keluarannya adalah 0, yang tidak bermakna, kerana tidak ada unsur konkrit melebihi elemen terakhir.

akhir () const kecuali

Mengembalikan iterator yang menunjukkan tepat di luar elemen vektor terakhir. Apabila pembinaan vektor didahului oleh const, ujung ekspresi () const dijalankan dan bukannya hujung (). Pertimbangkan segmen kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::const_iteratoriter=vtr.akhir();
kos<< *iter<< ' n';

Outputnya adalah 0. Perhatikan bahawa const_iterator telah digunakan kali ini dan bukan hanya iterator untuk menerima iterator yang dikembalikan.

Pengulangan Berbalik

Mungkin ada iterator yang berulang dari akhir hingga sebelum elemen pertama.

rbegin () kecuali

Mengembalikan iterator yang menunjukkan elemen vektor terakhir, seperti pada segmen kod berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::pembalik_iteratorrIter=vtr.rbegin();
kos<< *rIter<< ' n';

Keluarannya adalah 4.4.

Perhatikan bahawa deklarasi yang menerima iterator terbalik telah diisytiharkan. Iterator diredferensikan dalam ungkapan kembali untuk mendapatkan nilai dengan cara yang sama seperti penunjuk yang diturunkan.

rbegin () const kecuali;

Mengembalikan lelaran yang menunjukkan elemen vektor terakhir. Apabila pembinaan vektor didahului oleh const, ungkapan rbegin () const dijalankan bukan rbegin (). Dalam keadaan ini, elemen yang sesuai dalam vektor tidak dapat diubah. Ciri ini digunakan dalam kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::const_reverse_iteratorrIter=vtr.rbegin();
kos<< *rIter<< ' n';

Keluarannya adalah 4.4.

Perhatikan bahawa const_reverse_iterator telah digunakan pada masa ini, dan bukannya sebaliknya_iterator, untuk menerima iterator yang dikembalikan.

tidak (kecuali)

Mengembalikan iterator yang menunjukkan tepat sebelum elemen vektor pertama. Pertimbangkan segmen kod berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::pembalik_iteratorrIter=vtr.membuat();
kos<< *rIter<< ' n';

Keluarannya adalah 0, yang tidak bermakna, kerana tidak ada unsur konkrit sebelum elemen pertama.

render () const kecuali

Mengembalikan iterator yang menunjukkan tepat sebelum elemen vektor pertama. Apabila pembinaan vektor didahului oleh const, ekspresi rend () const dijalankan dan bukannya rend (). Pertimbangkan segmen kod berikut:

penyambungvektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vektor<terapung> ::const_reverse_iteratorrIter=vtr.membuat();
kos<< *rIter<< ' n';

Keluarannya adalah 0.

Perhatikan bahawa const_reverse_iterator telah digunakan pada masa ini, dan bukannya sebaliknya_iterator, untuk menerima iterator yang dikembalikan.

Pengubah Vektor

Pengubah yang mengubah vektor boleh mengambil atau mengembalikan iterator.

a. tempat (p, args)

Memasukkan objek jenis T yang dibina dengan std :: forward (args)… sebelum hlm.

Untuk perincian - lihat kemudian

masukkan (iteratorPosition, nilai)

Memasukkan salinan nilai pada kedudukan iterator vektor. Mengembalikan iterator (kedudukan) dalam vektor tempat salinan telah diletakkan. Kod berikut menunjukkan di mana nilai telah diletakkan:

vektor<int>vtr{10, dua puluh, 30, 40};
vektor<int> ::iteratoriter=vtr.bermula();
++iter;
++iter;
vtr.masukkan(iter, 25);
kos<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' n';

Keluarannya ialah: 20 25 30.

Perhatikan bahawa iterator maju (bertambah) seperti penunjuk.

Senarai pemula juga boleh dimasukkan, seperti yang ditunjukkan oleh kod berikut:

vektor<int>vtr{10, dua puluh, 30, 40};
vektor<int> ::iteratoriter=vtr.bermula();
++iter;
++iter;
vtr.masukkan(iter, {25, 28});

kos<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' n';

Keluarannya ialah: 20 25 28 30.

padam (kedudukan)

Mengeluarkan elemen pada kedudukan yang ditunjukkan oleh iterator, kemudian mengembalikan kedudukan iterator. Kod berikut menggambarkan ini:

vektor<int>vtr{10, dua puluh, 30, 40};
vektor<int> ::iteratoriter=vtr.bermula();
++iter;
++iter;
vtr.padam(iter);
kos<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' n';

Keluarannya ialah: 10 20 40

push_back (t), push_back (rv)

Digunakan untuk menambahkan elemen tunggal di hujung vektor. Gunakan push_back (t) seperti berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vtr.menolak kembali(5.5);
terapungfl=vtr[4];
kos<<fl<< ' n';

Keluarannya adalah 5.5.

menolak kembali(rv): -jumpa lagi.

pop_back ()

Mengeluarkan elemen terakhir tanpa mengembalikannya. Ukuran vektor dikurangkan sebanyak 1. Kod berikut menggambarkan ini:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
terapungs=vtr.ukuran();
kos<<s<< ' n';

Keluarannya adalah 3.

a. pertukaran (b)

Dua vektor boleh ditukar, seperti yang digambarkan dalam segmen kod berikut:

vektor<terapung>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<terapung>vtr2{10, dua puluh};
vtr1.pertukaran(vtr2);
kos<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' n';

kos<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Keluarannya adalah:

vtr1: 10 dua puluh 0 0
vtr2: 1.1 2.2 3.3 4.4

Perhatikan bahawa panjang vektor meningkat, jika perlu. Juga, nilai yang tidak mempunyai penggantian digantikan oleh beberapa nilai lalai.

jelas ()

Mengeluarkan semua elemen dari vektor, seperti yang ditunjukkan oleh segmen kod berikut:

vektor<terapung>vtr{1.1, 2.2, 3.3, 4.4};
vtr.jelas();
kos<<vtr.ukuran() << ' n';

Keluarannya adalah 0.

Pengendali Kesaksamaan dan Perhubungan untuk Vektor

Pengendali ==

Mengembalikan 1 untuk true jika kedua-dua vektor mempunyai ukuran yang sama dan elemen yang sesuai sama; jika tidak, ia mengembalikan 0 untuk false. Sebagai contoh:

vektor<int>U{1, 2, 3};
vektor<int>V{4, 5, 6};
bool bl=U==V;
kos<<bl<< ' n';

Keluarannya adalah 0.

Pengendali! =

Mengembalikan 1 untuk true jika kedua-dua vektor tidak mempunyai ukuran yang sama dan / atau elemen yang sesuai tidak sama; jika tidak, ia mengembalikan 0 untuk false. Sebagai contoh:

vektor<int>U{1, 2, 3};
vektor<int>V{4, 5, 6};
bool bl=U! =V;
kos<<bl<< ' n';

Keluarannya adalah 1.

The

Mengembalikan 1 untuk true jika vektor pertama adalah subset awal vektor kedua, dengan unsur-unsur dari dua bahagian yang sama sama dan dalam urutan yang sama. Sekiranya kedua-dua vektor mempunyai ukuran yang sama dan bergerak dari kiri ke kanan dan unsur ditemui pada vektor pertama yang kurang daripada elemen yang sepadan dalam vektor kedua, maka 1 masih akan dikembalikan. Jika tidak, 0 untuk false dikembalikan. Sebagai contoh:

vektor<int>U{3, 1, 1};
vektor<int>V{3, 2, 1};
bool bl=U<V;
kos<<bl<< ' n';

Keluarannya adalah 1.

Pengendali>

Pulang! (U

The<= Operator

Mengembalikan U<= V, where U is the first vector and V is the second vector, according to the above definitions.

Pengendali> =

Pulang! (U<= V), where U is the first vector and V is the second vector, according to the above definitions.

Kesimpulannya

Vektor adalah contoh bekas turutan. Vektor adalah bentuk larik biasa yang lebih baik dan disusun dari kelas. Vektor mempunyai kaedah yang diklasifikasikan di bawah: pembinaan dan penugasan, kapasiti, akses elemen, akses data, iterator, pengubah, dan operator berangka yang berlebihan.

Terdapat bekas urutan lain, disebut senarai, senarai_ maju, dan tatasusunan. Sekiranya tugas itu melibatkan penyisipan dan penghapusan yang kerap di tengah-tengah urutan, maka senarai atau senarai hadapan harus digunakan. Sekiranya tugas itu melibatkan penyisipan dan penghapusan yang kerap pada awal atau akhir urutan, maka deque harus digunakan. Oleh itu, vektor hanya boleh digunakan apabila operasi seperti ini tidak penting.