C ++

Cara Menggunakan C ++ Vektor

Cara Menggunakan C ++ Vektor

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 susunan biasa, susunan 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 tatasusunan 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 membuat 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 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 dimasukkan, 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

Membuat Vektor

int foo [10];

Di atas adalah deklarasi larik dengan nama "foo" dan bilangan elemen "10."Ini adalah pelbagai 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:

std :: vektor vtr (8);

Di sini, vektor adalah fungsi pembina khas. Jenis data yang akan disimpan 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 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. Namun, C ++ sudah memiliki 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 ruang nama 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:

vektor nama

Ini membuat vektor panjang sifar dan taip “T."Pernyataan berikut membuat vektor panjang sifar dari jenis" float "dengan nama" vtr: "

vektor vtr;

vektor nama (n)

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

vektor vtr (4);

vektor nama (n, t)

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

vektor 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 vtr = 1.1, 2.2, 3.3, 4.4;

Atau

vektor 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 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 vtr;
vtr = 1.1, 2.2, 3.3, 4.4;

vektor V2 (V1)

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

vektor vtr1 (5, 3.4);
vektor vtr2 (vtr1);

Menetapkan Vektor semasa Pembinaan

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

vektor vtr1 1.1, 2.2, 3.3, 4.4;
vektor vtr2 = vtr1;

Pernyataan kedua bersamaan dengan:

vektor 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:

vektor const vtr 1.1, 2.2, 3.3, 4.4;

Dalam jenis vektor ini, tidak ada unsur yang dapat ditambahkan atau dikeluarkan. Lebih-lebih lagi, tiada 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
vektor (InputIterator pertama, InputIterator terakhir, const Allocator & = Allocator ());

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 vtr (4);
int num = vtr.kapasiti ();
cout << num << '\n';

Keluarannya adalah 4.

rizab (n)

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

vektor vtr (4);
vtr.rizab (6);
cout << vtr.capacity() << '\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 vtr (4);
apungan sz = vtr.saiz ();
cout << sz << '\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 vtr (4);
vtr.rizab (6);
vtr.shrink_to_fit ();
int sz = vtr.saiz ();
cout << sz << '\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 arah hujung akan terhapus. Sekiranya ukuran baru lebih panjang, maka beberapa nilai lalai ditambahkan hingga akhir. Untuk mempunyai nilai tambah tertentu, gunakan fungsi resize () dengan dua argumen. Segmen kod berikut menggambarkan penggunaan dua fungsi ini:

vektor vtr1 1.1, 2.2, 3.3, 4.4;
vtr1.ubah saiz (2);
cout << "New size of vtr1: " << vtr1.size() << '\n';
vektor vtr2 1.1, 2.2;
vtr2.ubah saiz (4, 8.8);
cout << "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 tidak sah.

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 tersebut tidak kosong. Kod berikut menggambarkan ini:

vektor vtr;
cout << vtr.empty() << '\n';
vektor vt (4);
cout << vt.empty() << '\n';
vektor v (4,3.5);
cout << v.empty() << '\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]

Operasi "vectorName [i]" mengembalikan rujukan ke elemen di iika indeks vektor. Kod berikut mengeluarkan 3.3 untuk vektor di atas:

vektor vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr [2];
cout << fl << '\n';

vektorNama [i] konst

Operasi "vectorName [i] const" dijalankan dan bukannya "vectorName [i]" apabila vektor adalah vektor tetap. Operasi ini digunakan dalam kod berikut:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr [2];
cout << fl << '\n';

Ungkapan mengembalikan rujukan tetap ke iika elemen vektor.

Menetapkan Nilai dengan Langganan

Nilai dapat diberikan kepada vektor tidak tetap, seperti berikut:

vektor vtr 1.1, 2.2, 3.3, 4.4;
vtr [2] = 8.8;
cout << vtr[2] << '\n';

Keluarannya adalah 8.8.

vektorNama.pada (i)

"Nama vektor.di (i) "seperti" vectorName [i], "tetapi" vectorName.di (i) ”lebih dipercayai. Kod berikut menunjukkan bagaimana vektor ini harus digunakan:

vektor vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.pada (2);
cout << fl << '\n';
di () adalah fungsi anggota vektor.

vektorNama.di (i) konst

"Nama vektor.di (i) const "adalah seperti" vectorName [i] const ", tetapi" vectorName.di (i) const ”lebih dipercayai. "Nama vektor.di (i) const "dijalankan bukan" vectorName.di (i) ”apabila vektor adalah vektor tetap. Vektor ini digunakan dalam kod berikut:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.pada (2);
cout << fl << '\n';
di () const adalah fungsi anggota vektor.

Menetapkan Nilai dengan Fungsi at ()

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
vtr.pada (2) = 8.8;
cout << vtr[2] << '\n';

Keluarannya adalah 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 pertama vektor tanpa membuang elemen tersebut. Keluaran kod berikut adalah 1.1.

vektor vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.depan ();
cout << fl << '\n';

Elemen tidak dikeluarkan dari vektor.

depan () konst

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

vektor const vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.depan ();
cout << fl << '\n';

Rujukan tetap dikembalikan. Elemen tidak dikeluarkan dari vektor.

belakang ()

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.belakang ();
cout << fl << '\n';

belakang () konst

Apabila pembinaan vektor didahului oleh const, ungkapan "back () const" dijalankan bukan "back ()."Ini digunakan dalam kod berikut:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.belakang ();
cout << 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.

bermula () kecuali

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
vektor:: iterator iter = vtr.bermula ();
cout << *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.

bermula () const kecuali;

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

vektor const vtr 1.1, 2.2, 3.3, 4.4;
vektor:: const_iterator iter = vtr.bermula ();
cout << *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 lelaran yang menunjukkan tepat di luar elemen terakhir vektor. Pertimbangkan segmen kod berikut:

vektor vtr 1.1, 2.2, 3.3, 4.4;
vektor:: iterator iter = vtr.akhir ();
cout << *iter << '\n';

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

akhir () const kecuali

Mengembalikan lelaran yang menunjukkan tepat di luar elemen vektor terakhir. Apabila pembinaan vektor didahului oleh "const", ungkapan "end () const" dijalankan dan bukannya "end ().Pertimbangkan segmen kod berikut:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
vektor:: const_iterator iter = vtr.akhir ();
cout << *iter << '\n';

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

Pengulangan Berbalik

Ada kemungkinan untuk mempunyai iterator yang berulang dari akhir hingga sebelum elemen pertama.

rbegin () kecuali

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
vektor:: reverse_iterator rIter = vtr.rbegin ();
cout << *rIter << '\n';

Keluarannya adalah 4.4.

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

rbegin () const kecuali;

Mengembalikan iterator 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:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
vektor:: const_reverse_iterator rIter = vtr.rbegin ();
cout << *rIter << '\n';

Keluarannya adalah 4.4.

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

rend () kecuali

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
vektor:: reverse_iterator rIter = vtr.rend ();
cout << *rIter << '\n';

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

rend () const kecuali

Mengembalikan iterator yang menunjukkan tepat sebelum elemen vektor pertama. Ketika konstruksi vektor didahului oleh "const", ekspresi "rend () const" dijalankan bukan "rend ().Pertimbangkan segmen kod berikut:

vektor const vtr 1.1, 2.2, 3.3, 4.4;
vektor:: const_reverse_iterator rIter = vtr.rend ();
cout << *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 kerja (p, args)

Memasukkan objek jenis T yang dibina dengan std :: maju(berhujah) ... 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 tersebut diletakkan:

vektor vtr 10, 20, 30, 40;
vektor:: iterator iter = vtr.bermula ();
++iter;
++iter;
vtr.masukkan (iter, 25);
cout << vtr[1] << " << vtr[2]<< '
' << vtr[3] << '\n';

Keluarannya ialah: 20 25 30.

Perhatikan bahawa iterator maju (bertambah) seperti penunjuk.

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

vektor vtr 10, 20, 30, 40;
vektor:: iterator iter = vtr.bermula ();
++iter;
++iter;
vtr.masukkan (iter, 25, 28);
cout << 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 vtr 10, 20, 30, 40;
vektor:: iterator iter = vtr.bermula ();
++iter;
++iter;
vtr.padam (iter);
cout << 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 vtr 1.1, 2.2, 3.3, 4.4;
vtr.tolak_balik (5.5);
float fl = vtr [4];
cout << fl << '\n';

Keluarannya adalah 5.5.

push_back (rv): - lihat kemudian.

pop_back ()

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

vektor vtr 1.1, 2.2, 3.3, 4.4;
vtr.pop_back ();
apungan sz = vtr.saiz ();
cout << sz << '\n';

Keluarannya adalah 3.

a.pertukaran (b)

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

vektor vtr1 1.1, 2.2, 3.3, 4.4;
vektor vtr2 10, 20;
vtr1.pertukaran (vtr2);
cout << "vtr1: "<< vtr1[0] <<" "<< vtr1[1] <<"
"<< vtr1[2] <<" "<< vtr1[3] << '\n';
cout << "vtr2: "<< vtr2[0] <<" "<< vtr2[1] <<"
"<< vtr2[2] <<" "<< vtr2[3] << '\n';

Keluarannya adalah:

vtr1: 10 20 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 vtr 1.1, 2.2, 3.3, 4.4;
vtr.jelas ();
cout << vtr.size() << '\n';

Keluarannya adalah 0.

Pengendali Kesamarataan dan Perhubungan untuk Vektor

Pengendali ==

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

vektor U 1, 2, 3;
vektor V 4, 5, 6;
bool bl = U == V;
cout << bl << '\n';

Keluarannya adalah 0.

The != 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 U 1, 2, 3;
vektor V 4, 5, 6;
bool bl = U!= V;
cout << bl << '\n';

Keluarannya adalah 1.

The < Operator

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 U 3, 1, 1;
vektor V 3, 2, 1;
bool bl = Ucout << bl << '\n';

Keluarannya adalah 1. < does not include the case when the size and order are the same.

Pengendali>

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

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 yang lebih baik dari tatasusunan biasa 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.

Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...
Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....