Cara Menggunakan Vektor C++

How Use C Vector



pengantar

Array adalah serangkaian tipe objek yang sama di lokasi memori yang berurutan. Array tidak dapat menambah panjang bijih. Vektor seperti array, tetapi panjangnya dapat ditambah atau dikurangi. Oleh karena itu, vektor memiliki lebih banyak operasi daripada array.

C++ memiliki banyak library, semuanya membentuk C++ Standard Library. Salah satu library tersebut adalah library container. Wadah adalah kumpulan objek, dan operasi tertentu dapat dilakukan pada koleksi. Wadah C++ dapat dikelompokkan menjadi dua set: wadah urutan dan wadah asosiatif. Wadah urutan adalah vektor, larik (bukan larik yang sama seperti yang dibahas sebelumnya), deque, forward_list, dan daftar. Ini adalah koleksi yang berbeda (struktur data seperti array), dan masing-masing menawarkan trade-off yang berbeda.







Setiap programmer harus tahu bagaimana memutuskan apakah akan menggunakan vektor, array, deque, forward_list, atau daftar. Ketika seorang programmer membutuhkan struktur yang membutuhkan lebih banyak operasi daripada yang terkait dengan array biasa, array biasa tidak boleh digunakan.



Jika tugas sering melibatkan penyisipan dan penghapusan di tengah urutan, maka daftar atau forward_list harus digunakan. Jika tugas melibatkan penyisipan dan penghapusan yang sering di awal atau akhir urutan, maka deque harus digunakan. Sebuah vektor harus digunakan ketika jenis operasi ini tidak diperlukan.



Artikel ini menunjukkan cara menggunakan vektor C++. Anda memerlukan pengetahuan tentang pointer, referensi, dan array C++ untuk memahami artikel ini.





Kelas dan Objek

Kelas adalah sekumpulan variabel dan fungsi yang bekerja sama, di mana variabel tidak memiliki nilai yang ditetapkan. Ketika nilai ditugaskan ke variabel, kelas menjadi objek. Nilai berbeda yang diberikan pada kelas yang sama menghasilkan objek yang berbeda; yaitu, objek yang berbeda dapat memiliki kelas yang sama tetapi memiliki nilai yang berbeda. Membuat objek dari kelas juga dikenal sebagai instantiating objek.

Istilah vektor menggambarkan sebuah kelas. Objek yang dibuat dari vektor memiliki nama yang dipilih oleh programmer.



Fungsi yang termasuk dalam kelas diperlukan untuk membuat instance objek dari kelas. Dalam C++, fungsi tersebut memiliki nama yang sama dengan nama kelasnya. Objek berbeda yang dibuat (dicontohkan) dari kelas memiliki nama berbeda yang diberikan masing-masing oleh programmer.

Membuat objek dari kelas berarti membangun objek; itu juga berarti instantiating objek.

Kelas Vektor

Kelas vektor telah ditentukan dan ada di perpustakaan. Untuk menggunakan kelas vektor, seorang programmer harus menyertakan header vektor dalam file dengan direktif preprocessing berikut:

#termasuk

Setelah header disertakan, semua fitur vektor (anggota data dan fungsi anggota) dapat diakses. Untuk menggunakan objek count untuk mengeluarkan data ke terminal (konsol), header objek juga harus disertakan. Untuk menulis program dengan vektor, minimal, header berikut harus disertakan:

#termasuk
#termasuk

Membuat Instansi Vektor

ke dalamfoo[10];

Di atas adalah deklarasi array dengan nama foo dan jumlah elemen 10. Ini adalah array bilangan bulat. Deklarasi vektor serupa. Untuk sebuah vektor, jumlah elemen adalah opsional, karena panjang vektor dapat bertambah atau berkurang.

Pada titik ini dalam program, kelas vektor telah didefinisikan di perpustakaan, dan header telah disertakan. Vektor dapat diinstansiasi sebagai berikut:

jam::vektor <ke dalam>vtr(8);

Di sini, vektor adalah fungsi konstruktor khusus. Jenis data yang akan disimpan oleh vektor adalah int, dalam kurung sudut. Istilah vtr adalah nama yang dipilih oleh programmer untuk vektor. Akhirnya, 8, dalam tanda kurung, adalah jumlah tentatif bilangan bulat yang akan dimiliki vektor.

Istilah std adalah singkatan dari namespace standar. Istilah ini harus diikuti oleh titik dua ganda, dalam konteks ini. Siapa saja dapat menulis perpustakaan kelas vektor mereka sendiri dan menggunakannya. Namun, C++ sudah memiliki pustaka standar dengan nama standar, termasuk vektor. Untuk menggunakan nama standar, nama standar harus diawali dengan std:: . Untuk menghindari mengetik std:: setiap kali dalam program untuk nama standar, file program dapat dimulai sebagai berikut:

#termasuk
#termasuk
menggunakan namespace std;

Membebani Fungsi

Ketika dua atau lebih tanda tangan fungsi yang berbeda memiliki nama yang sama, nama tersebut dikatakan kelebihan beban. Ketika satu fungsi dipanggil, jumlah dan jenis argumen menentukan fungsi mana yang dieksekusi.

Membangun Vektor

Membangun vektor berarti instantiating (membuat) objek vektor. Fungsi konstruktor kelebihan beban sebagai berikut:

nama vektor

Ini menciptakan vektor dengan panjang nol dan tipe T. Pernyataan berikut membuat vektor dengan panjang nol dari tipe float dengan nama vtr:

vektor<mengambang>vtr;

nama vektor (n)

Ini menciptakan vektor dengan n elemen tipe T. Pernyataan untuk vektor ini dengan empat elemen float adalah sebagai berikut:

vektor<mengambang>vtr(4);

nama vektor (n, t)

Ini menciptakan vektor dari n elemen yang diinisialisasi ke nilai t. Pernyataan berikut membuat vektor dari 5 elemen, di mana setiap elemen memiliki nilai 3.4:

vektor<mengambang>vtr(5, 3.4);

Membangun dengan Inisialisasi

Sebuah vektor dapat dibangun (dibuat) dan diinisialisasi pada saat yang sama, dengan salah satu dari dua cara berikut:

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

Atau

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

Perhatikan bahwa tidak ada tanda kurung setelah nama objek. Tanda kurung yang digunakan tepat setelah nama objek harus memiliki daftar penginisialisasi, sebagai berikut:

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

Sebuah vektor dapat dibangun dan diinisialisasi kemudian dengan daftar penginisialisasi. Dalam hal ini, tanda kurung tidak akan digunakan:

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

vektor V2 (V1)

Ini adalah konstruktor salinan. Ini menciptakan vektor V2 sebagai salinan dari vektor V1. Kode berikut menggambarkan hal ini:

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

Menetapkan Vektor selama Konstruksi

Selama konstruksi, vektor kosong dapat dibuat sementara yang lain ditugaskan padanya, sebagai berikut:

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

Pernyataan kedua setara dengan:

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

vektor konstan

Vektor const adalah vektor yang elemen-elemennya tidak dapat diubah. Nilai dalam vektor ini hanya-baca. Saat dibuat, vektor muncul sebagai berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};

Dalam jenis vektor ini, tidak ada elemen yang dapat ditambahkan atau dihilangkan. Selain itu, tidak ada nilai yang dapat diubah.

Membangun dengan Iterator

Templat menyediakan representasi umum untuk tipe data. Iterator menyediakan representasi generik pemindaian melalui nilai-nilai wadah. Sintaks untuk membuat vektor dengan iterator adalah sebagai berikut:

templat<kelas InputIterator>
vektor(MasukanIterator terlebih dahulu,InputIterator terakhir,konstanpengalokasi& =pengalokasi());

Ini membangun vektor untuk rentang [pertama, terakhir) menggunakan pengalokasi yang ditentukan, yang akan dibahas nanti dalam artikel ini.

Menghancurkan Vektor

Untuk menghancurkan vektor, cukup biarkan vektor keluar dari ruang lingkup dan penghancuran ditangani secara otomatis.

Kapasitas Vektor

size_type capacity() const noexcept

Jumlah total elemen yang dapat ditampung oleh vektor tanpa memerlukan realokasi dikembalikan oleh fungsi anggota kapasitas. Segmen kode untuk ini adalah sebagai berikut:

vektor<mengambang>vtr(4);
ke dalampada satu=vtr.kapasitas();
biaya<<pada satu<< ' ';

Keluarannya adalah 4.

cadangan (n)

Ruang memori tidak selalu tersedia secara bebas. Ruang ekstra dapat dipesan terlebih dahulu. Perhatikan segmen kode berikut:

vektor<mengambang>vtr(4);
vtr.menyimpan(6);
biaya<<vtr.kapasitas() << ' ';

Outputnya adalah 6. Jadi, ruang ekstra yang disediakan adalah 6 – 4 = 2 elemen. Fungsi mengembalikan batal.

size() const nokecuali

Ini mengembalikan jumlah elemen dalam vektor. Kode berikut mengilustrasikan fungsi ini:

vektor<mengambang>vtr(4);
mengambangS=vtr.ukuran();
biaya<<S<< ' ';

Keluarannya adalah 4.

menyusut agar sesuai()

Setelah memberikan kapasitas ekstra ke vektor dengan fungsi reserve(), ukuran vektor dapat diturunkan agar sesuai dengan ukuran aslinya. Kode berikut menggambarkan hal ini:

vektor<mengambang>vtr(4);
vtr.menyimpan(6);
vtr.menyusut agar sesuai();
ke dalamS=vtr.ukuran();
biaya<<S<< ' ';

Outputnya adalah 4 dan bukan 6. Fungsi mengembalikan void.

ubah ukuran(sz), ubah ukuran(sz,c)

Ini mengubah ukuran vektor. Jika ukuran baru lebih kecil dari ukuran lama, maka elemen menjelang akhir dihapus. Jika ukuran baru lebih panjang, maka beberapa nilai default ditambahkan menjelang akhir. Untuk menambahkan nilai tertentu, gunakan fungsi resize() dengan dua argumen. Segmen kode berikut menggambarkan penggunaan kedua fungsi ini:

vektor<mengambang>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.mengubah ukuran(2);
biaya<< 'Ukuran baru vtr1:' <<vtr1.ukuran() << ' ';
vektor<mengambang>vtr2{1.1, 2.2};
vtr2.mengubah ukuran(4, 8.8);
biaya<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' ';

Outputnya adalah sebagai berikut:

Ukuran baru vtr1: 2
vtr2: 1.1 2.2 8.8 8.8

Fungsi kembali batal.

kosong() const nokecuali

Fungsi ini mengembalikan 1 untuk true jika tidak ada elemen dalam vektor dan 0 untuk false jika vektor kosong. Jika sebuah vektor memiliki 4 lokasi untuk tipe data tertentu, seperti float, tanpa nilai float, maka vektor tersebut tidak kosong. Kode berikut menggambarkan hal ini:

vektor<mengambang>vtr;
biaya<<vtr.kosong() << ' ';
vektor<mengambang>vt(4);
biaya<<yang seperti itukosong() << ' ';

vektor<mengambang>v(4,3.5);
biaya<<v.kosong() << ' ';

Outputnya adalah sebagai berikut:

1
0
0

Akses Elemen Vektor

Sebuah vektor dapat di-subscript (diindeks) seperti sebuah array. Penghitungan indeks dimulai dari nol.

nama vektor[i]

Operasi vectorName[i] mengembalikan referensi ke elemen di ithindeks vektor. Kode berikut menghasilkan 3.3 untuk vektor di atas:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr[2];
biaya<<fl<< ' ';

nama vektor[i] const

Operasi vectorName[i] const dijalankan sebagai ganti vectorName[i] ketika vektor adalah vektor konstan. Operasi ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr[2];
biaya<<fl<< ' ';

Ekspresi mengembalikan referensi konstan ke ithelemen vektor.

Menetapkan Nilai dengan Subskrip

Sebuah nilai dapat diberikan ke vektor non-konstan, sebagai berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
biaya<<vtr[2] << ' ';

Outputnya adalah 8.8.

namavektor.at(i)

vectorName.at(i) seperti vectorName[i], tetapi vectorName.at(i) lebih dapat diandalkan. Kode berikut menunjukkan bagaimana vektor ini harus digunakan:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.pada(2);
biaya<<fl<< ' ';
pada()adalah anggota vektorfungsi.

vectorName.at(i) const

vectorName.at(i) const seperti vectorName[i] const, tetapi vectorName.at(i) const lebih dapat diandalkan. vectorName.at(i) const dieksekusi sebagai ganti vectorName.at(i) ketika vektor adalah vektor konstan. Vektor ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.pada(2);
biaya<<fl<< ' ';
pada() konstanadalah anggota vektorfungsi.

Menetapkan Nilai dengan Fungsi at()

Nilai dapat ditetapkan ke vektor non-konstan dengan fungsi at(), sebagai berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pada(2) = 8.8;
biaya<<vtr[2] << ' ';

Outputnya adalah 8.8.

Masalah dengan Sub-Scripting

Masalah dengan sub-scripting (pengindeksan) adalah bahwa jika indeks di luar jangkauan, nol dapat dikembalikan atau kesalahan dapat dikeluarkan saat run-time.

depan()

Ini mengembalikan referensi ke elemen pertama dari vektor tanpa menghapus elemen. Output dari kode berikut adalah 1.1.

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.depan();
biaya<<fl<< ' ';

Elemen tidak dihilangkan dari vektor.

depan() konstan

Ketika konstruksi vektor didahului oleh const, ekspresi front() const dijalankan sebagai ganti front(). Ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.depan();
biaya<<fl<< ' ';

Referensi konstan dikembalikan. Elemen tidak dihilangkan dari vektor.

kembali()

Ini mengembalikan referensi ke elemen terakhir dari vektor tanpa menghapus elemen. Output dari kode berikut adalah 4.4.

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.kembali();
biaya<<fl<< ' ';

kembali() const

Ketika konstruksi vektor didahului oleh const, ekspresi back() const akan dieksekusi alih-alih back(). Ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
mengambangfl=vtr.kembali();
biaya<<fl<< ' ';

Referensi konstan dikembalikan. Elemen tidak dihilangkan dari vektor.

Akses Data Vektor

data() tidak kecuali; data() const nokecuali;

Salah satu dari ini mengembalikan pointer sehingga [data(), data() + size()) adalah rentang yang valid.

Ini akan dibahas secara lebih rinci nanti dalam artikel.

Mengembalikan Iterator dan Vektor

Iterator seperti pointer tetapi memiliki lebih banyak fungsi daripada pointer.

mulai() tidak kecuali

Mengembalikan iterator yang menunjuk ke elemen pertama dari vektor, seperti pada segmen kode berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::pembuat ulangiter=vtr.mulai();
biaya<< *iter<< ' ';

Keluarannya adalah 1.1. Perhatikan bahwa deklarasi yang menerima iterator telah dideklarasikan. Iterator didereferensi dalam ekspresi pengembalian untuk mendapatkan nilai dengan cara yang sama seperti penunjuk dereferensi.

mulai() const nokecuali;

Mengembalikan iterator yang menunjuk ke elemen pertama dari vektor. Ketika konstruksi vektor didahului oleh const, ekspresi begin() const dijalankan alih-alih begin(). Di bawah kondisi ini, elemen yang sesuai dalam vektor tidak dapat dimodifikasi. Ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::const_iteratoriter=vtr.mulai();
biaya<< *iter<< ' ';

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

akhir() tidak kecuali

Mengembalikan iterator yang menunjuk tepat di luar elemen terakhir dari vektor. Perhatikan segmen kode berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::pembuat ulangiter=vtr.akhir();
biaya<< *iter<< ' ';

Outputnya adalah 0, yang tidak ada artinya, karena tidak ada elemen konkret di luar elemen terakhir.

end() const nokecuali

Mengembalikan iterator yang menunjuk tepat di luar elemen terakhir dari vektor. Ketika konstruksi vektor didahului oleh const, ekspresi end() const dieksekusi alih-alih end(). Perhatikan segmen kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::const_iteratoriter=vtr.akhir();
biaya<< *iter<< ' ';

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

Iterasi Terbalik

Dimungkinkan untuk memiliki iterator yang berulang dari akhir hingga tepat sebelum elemen pertama.

rbegin() tidak kecuali

Mengembalikan iterator yang menunjuk ke elemen terakhir dari vektor, seperti pada segmen kode berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::reverse_iteratorritu=vtr.mulai();
biaya<< *ritu<< ' ';

Keluarannya adalah 4.4.

Perhatikan bahwa deklarasi yang menerima iterator terbalik telah dideklarasikan. Iterator didereferensi dalam ekspresi pengembalian untuk mendapatkan nilai dengan cara yang sama seperti penunjuk dereferensi.

rbegin() const noexcept;

Mengembalikan iterator yang menunjuk ke elemen terakhir dari vektor. Ketika konstruksi vektor didahului oleh const, ekspresi rbegin() const akan dieksekusi sebagai ganti rbegin(). Di bawah kondisi ini, elemen yang sesuai dalam vektor tidak dapat dimodifikasi. Fitur ini digunakan dalam kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::const_reverse_iteratorritu=vtr.mulai();
biaya<< *ritu<< ' ';

Keluarannya adalah 4.4.

Perhatikan bahwa const_reverse_iterator telah digunakan kali ini, bukan hanya reverse_iterator, untuk menerima iterator yang dikembalikan.

render () tidak kecuali

Mengembalikan iterator yang menunjuk tepat sebelum elemen pertama dari vektor. Perhatikan segmen kode berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::reverse_iteratorritu=vtr.membuat();
biaya<< *ritu<< ' ';

Outputnya adalah 0, yang tidak ada artinya, karena tidak ada elemen konkret sebelum elemen pertama.

render () const noexcept

Mengembalikan iterator yang menunjuk tepat sebelum elemen pertama dari vektor. Ketika konstruksi vektor didahului oleh const, ekspresi rend() const akan dieksekusi alih-alih rend(). Perhatikan segmen kode berikut:

konstanvektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vektor<mengambang> ::const_reverse_iteratorritu=vtr.membuat();
biaya<< *ritu<< ' ';

Keluarannya adalah 0.

Perhatikan bahwa const_reverse_iterator telah digunakan kali ini, bukan hanya reverse_iterator, untuk menerima iterator yang dikembalikan.

Pengubah Vektor

Pengubah yang memodifikasi vektor dapat mengambil atau mengembalikan iterator.

a.tempat(p, args)

Menyisipkan objek bertipe T yang dibangun dengan std::forward(args)… sebelum p.

Untuk detailnya – lihat nanti

masukkan (iteratorPosition, nilai)

Menyisipkan salinan nilai pada posisi iterator dari vektor. Mengembalikan iterator (posisi) dalam vektor tempat salinan telah ditempatkan. Kode berikut menunjukkan di mana nilai telah ditempatkan:

vektor<ke dalam>vtr{10, dua puluh, 30, 40};
vektor<ke dalam> ::pembuat ulangiter=vtr.mulai();
++iter;
++iter;
vtr.memasukkan(iter, 25);
biaya<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' ';

Outputnya adalah: 20 25 30.

Perhatikan bahwa iterator itu maju (bertambah) seperti pointer.

Daftar penginisialisasi juga dapat dimasukkan, seperti yang diilustrasikan oleh kode berikut:

vektor<ke dalam>vtr{10, dua puluh, 30, 40};
vektor<ke dalam> ::pembuat ulangiter=vtr.mulai();
++iter;
++iter;
vtr.memasukkan(iter, {25, 28});

biaya<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' ';

Outputnya adalah: 20 25 28 30.

hapus (posisi)

Menghapus elemen pada posisi yang ditunjuk oleh iterator, lalu mengembalikan posisi iterator. Kode berikut menggambarkan hal ini:

vektor<ke dalam>vtr{10, dua puluh, 30, 40};
vektor<ke dalam> ::pembuat ulangiter=vtr.mulai();
++iter;
++iter;
vtr.menghapus(iter);
biaya<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' ';

Outputnya adalah: 10 20 40

push_back(t), push_back(rv)

Digunakan untuk menambahkan satu elemen di akhir vektor. Gunakan push_back(t) sebagai berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vtr.push_back(5.5);
mengambangfl=vtr[4];
biaya<<fl<< ' ';

Outputnya adalah 5,5.

push_back(rv): -sampai nanti.

pop_back()

Menghapus elemen terakhir tanpa mengembalikannya. Ukuran vektor dikurangi dengan 1. Kode berikut menggambarkan hal ini:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
mengambangS=vtr.ukuran();
biaya<<S<< ' ';

Keluarannya adalah 3.

a.swap(b)

Dua vektor dapat ditukar, seperti yang diilustrasikan pada segmen kode berikut:

vektor<mengambang>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<mengambang>vtr2{10, dua puluh};
vtr1.menukar(vtr2);
biaya<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' ';

biaya<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' ';

Outputnya adalah:

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

Perhatikan bahwa panjang vektor bertambah, jika perlu. Juga, nilai yang tidak memiliki pengganti diganti dengan beberapa nilai default.

jernih()

Menghapus semua elemen dari vektor, seperti yang diilustrasikan oleh segmen kode berikut:

vektor<mengambang>vtr{1.1, 2.2, 3.3, 4.4};
vtr.jernih();
biaya<<vtr.ukuran() << ' ';

Keluarannya adalah 0.

Persamaan dan Operator Relasional untuk Vektor

== Operator

Mengembalikan 1 untuk true jika dua vektor memiliki ukuran yang sama dan elemen yang bersesuaian sama; jika tidak, ia mengembalikan 0 untuk false. Sebagai contoh:

vektor<ke dalam>kamu{1, 2, 3};
vektor<ke dalam>V{4, 5, 6};
bool bl=kamu==V;
biaya<<bl<< ' ';

Keluarannya adalah 0.

!= Operator

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

vektor<ke dalam>kamu{1, 2, 3};
vektor<ke dalam>V{4, 5, 6};
bool bl=kamu! =V;
biaya<<bl<< ' ';

Keluarannya adalah 1.

NS

Mengembalikan 1 untuk true jika vektor pertama adalah himpunan bagian awal dari vektor kedua, dengan elemen-elemen dari dua bagian yang sama adalah sama dan dalam urutan yang sama. Jika kedua vektor berukuran sama dan bergerak dari kiri ke kanan dan sebuah elemen ditemui di vektor pertama yang lebih kecil dari elemen yang bersesuaian di vektor kedua, maka 1 masih akan dikembalikan. Jika tidak, 0 untuk false dikembalikan. Sebagai contoh:

vektor<ke dalam>kamu{3, 1, 1};
vektor<ke dalam>V{3, 2, 1};
bool bl=kamu<V;
biaya<<bl<< ' ';

Keluarannya adalah 1.

> Operator

Kembali! (U

NS<= Operator

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

>= Operator

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

Kesimpulan

Vektor adalah contoh wadah urutan. Sebuah vektor adalah bentuk yang lebih baik dari array biasa dan dipakai dari sebuah kelas. Vektor memiliki metode yang diklasifikasikan di bawah: konstruksi dan penugasan, kapasitas, akses elemen, akses data, iterator, pengubah, dan operator kelebihan beban numerik.

Ada wadah urutan lain, yang disebut daftar, daftar_maju, dan larik. Jika tugas sering melibatkan penyisipan dan penghapusan di tengah urutan, maka daftar atau forward_list harus digunakan. Jika tugas melibatkan penyisipan dan penghapusan yang sering pada awal atau akhir urutan, maka deque harus digunakan. Jadi, vektor harus digunakan hanya ketika operasi semacam ini tidak penting.