Vektor di Perpustakaan Templat Piawai C ++ (STL) dengan Contoh

Isi kandungan:

Anonim

Apakah Vektor C ++?

A C ++ VECTOR adalah pelbagai yang dinamik serta berupaya mengubah saiz sendiri secara automatik. Saiz semula berlaku setelah elemen ditambahkan atau dihapus dari vektor. Penyimpanan dikendalikan secara automatik oleh bekas. Unsur vektor disimpan dalam simpanan bersebelahan. Ini membolehkan pengaturcara C ++ mengakses dan melintasi elemen vektor menggunakan iterator.

Penyisipan data baru ke vektor dilakukan di hujungnya. Ini memerlukan masa berbeza. Penyingkiran elemen dari vektor memerlukan masa yang berterusan. Sebabnya ialah tidak perlu mengubah saiz vektor. Penyisipan atau penghapusan elemen pada awal vektor memerlukan masa linear.

Dalam Tutorial C ++ ini, anda akan belajar:

  • Apakah Vektor C ++?
  • Bilakah Menggunakan Vektor?
  • Cara Memulakan Vektor di C ++
  • Pengulangan
  • Pengubah
  • Contoh 1
  • Contoh 2
  • Kapasiti
  • Contoh 3

Bilakah Menggunakan Vektor?

Vektor C ++ harus digunakan dalam keadaan berikut:

  • Semasa berurusan dengan elemen data yang berubah secara konsisten.
  • Sekiranya ukuran data tidak diketahui sebelum bermula, vektor tidak akan meminta anda menetapkan ukuran maksimum wadah.

Cara Memulakan Vektor di C ++

Sintaks vektor dalam C ++ adalah:

vector  name (items)
  • Seperti yang ditunjukkan di atas, kita mulakan dengan kata kunci vektor.
  • Jenis data adalah jenis data elemen yang akan disimpan dalam vektor.
  • Nama adalah nama vektor atau elemen data.
  • Item menunjukkan bilangan elemen untuk data vektor. Parameter ini adalah pilihan.

Pengulangan

Tujuan iterator adalah untuk membantu kita mengakses elemen yang disimpan dalam vektor. Ia adalah objek yang berfungsi seperti penunjuk. Berikut adalah iterator biasa yang disokong oleh vektor C ++:

  • vektor :: begin (): memberikan iterator yang menunjukkan elemen pertama vektor.
  • vektor :: end (): ia memberikan iterator yang menunjukkan elemen vektor masa lalu.
  • vektor :: cbegin (): sama seperti vektor :: begin (), tetapi tidak mempunyai kemampuan untuk mengubah elemen.
  • vektor :: cend (): sama dengan vektor :: end () tetapi tidak dapat mengubah elemen vektor.

Pengubah

Pengubah digunakan untuk mengubah makna jenis data yang ditentukan. Berikut adalah pengubah umum dalam C ++:

  • vektor :: push_back (): Pengubah ini mendorong elemen dari belakang.
  • vektor :: insert (): Untuk memasukkan item baru ke vektor di lokasi yang ditentukan.
  • vektor :: pop_back (): Pengubah ini mengeluarkan elemen vektor dari belakang.
  • vektor :: erase (): Ia digunakan untuk membuang pelbagai elemen dari lokasi yang ditentukan.
  • vektor :: jelas (): Ia membuang semua elemen vektor.

Contoh 1

#include #include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}

Pengeluaran:

Berikut adalah tangkapan skrin kod:

Penjelasan Kod:

  1. Sertakan fail tajuk iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
  2. Sertakan fail tajuk vektor dalam kod kami. Ini akan membolehkan kita bekerja dengan vektor di C ++.
  3. Sertakan ruang nama std agar dapat menggunakan kelas dan fungsinya tanpa memanggilnya.
  4. Panggil fungsi utama () di mana logik program harus ditambahkan.
  5. {Menandakan permulaan fungsi utama ().
  6. Menyatakan vektor bernama angka untuk menyimpan sekumpulan bilangan bulat.
  7. Buat gelung untuk untuk membantu kami mengulangi vektor. Pembolehubah akan membantu kita melelar lebih unsur-unsur vektor, dari 1 st 5 th unsur-unsur.
  8. Tolak elemen ke dalam ruang vektor dari belakang. Untuk setiap lelaran, ini akan menambahkan nilai semasa pemboleh ubah a ke dalam vektor, iaitu 1 hingga 5.
  9. Cetak sebilangan teks pada konsol
  10. Gunakan pemboleh ubah iterator a untuk melakukan iterasi ke atas unsur-unsur bilangan vektor dari elemen awal hingga akhir-akhir. Perhatikan bahawa kita menggunakan iterator vektor :: begin () dan vector :: end ().
  11. Cetak nilai yang ditunjukkan oleh pemboleh ubah iterator pada konsol untuk setiap lelaran.
  12. Cetak sebilangan teks pada konsol. \ N adalah watak baris baru, memindahkan kursor ke baris baru untuk dicetak dari sana.
  13. Gunakan pemboleh ubah iterator untuk melakukan iterasi ke atas unsur-unsur bilangan vektor dari elemen awal hingga akhir-akhir. Perhatikan bahawa kami menggunakan iterator vektor :: cbegin () dan vektor :: cend ().
  14. Cetak nilai yang ditunjukkan oleh pemboleh ubah iterator pada konsol untuk setiap lelaran.
  15. Fungsi utama harus mengembalikan nilai jika program berjaya dijalankan.
  16. Akhir badan utama () fungsi.

Contoh 2

#include #include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}

Pengeluaran:

Berikut adalah tangkapan skrin kod:

Penjelasan Kod:

  1. Sertakan fail tajuk iostream dalam kod kami untuk menggunakan fungsinya.
  2. Sertakan fail tajuk vektor dalam kod kami untuk menggunakan fungsinya.
  3. Sertakan ruang nama std untuk menggunakan kelasnya tanpa memanggilnya.
  4. Panggil fungsi utama (). Logik program harus ditambahkan di dalam badannya.
  5. Permulaan fungsi utama () fungsi.
  6. Menyatakan vektor bernama num untuk menyimpan beberapa nilai integer.
  7. Simpan 5 elemen dalam angka vektor. Masing-masing dengan nilai 1.
  8. Cetak sebilangan teks pada konsol
  9. Gunakan pemboleh ubah iterator a untuk melakukan iterasi atas unsur-unsur bilangan vektor.
  10. Cetak nilai angka vektor pada konsol untuk setiap lelaran.
  11. Tambahkan nilai 2 di hujung nombor vektor.
  12. Menyatakan pemboleh ubah integer n untuk menyimpan ukuran bilangan vektor.
  13. Cetak nilai terakhir nombor vektor di samping teks lain. Ia harus mengembalikan 2.
  14. Keluarkan elemen terakhir dari angka vektor. 2 akan dikeluarkan.
  15. Cetak teks di konsol. \ N menggerakkan kursor ke baris baru untuk mencetak teks di sana.
  16. Gunakan pemboleh ubah iterator a untuk melakukan iterasi atas unsur-unsur bilangan vektor.
  17. Cetak nilai angka vektor pada konsol untuk setiap lelaran.
  18. Masukkan nilai 7 hingga awal angka vektor.
  19. Cetak nilai pertama bilangan vektor di samping teks lain. Ia harus kembali 7.
  20. Padamkan semua elemen dari angka vektor.
  21. Cetak ukuran angka vektor di samping teks lain setelah membersihkan semua kandungan. Ia mesti mengembalikan 0.
  22. Akhir badan utama () fungsi.

Kapasiti

Gunakan fungsi berikut untuk menentukan kapasiti vektor:

  • Saiz () - Ia mengembalikan jumlah item dalam vektor.
  • Max_size () -Mengembalikan jumlah item tertinggi yang boleh disimpan oleh vektor.
  • Kapasiti () -Mengembalikan jumlah ruang simpanan yang diperuntukkan kepada vektor.
  • Ubah saiz () -Mengubah saiz bekas untuk mengandungi item n. Sekiranya ukuran vektor sekarang lebih besar daripada n, item belakang akan dikeluarkan dari vektor. Sekiranya ukuran vektor sekarang lebih kecil daripada n, item tambahan akan ditambahkan ke bahagian belakang vektor.
  • Kosong () -i t kembali benar jika vektor kosong, jika tidak, ia kembali palsu.

Contoh 3

#include #include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"<

Pengeluaran:

Berikut adalah tangkapan skrin kod:

Penjelasan Kod:

  1. Sertakan fail tajuk iostream dalam kod kami untuk menggunakan fungsinya.
  2. Sertakan fail tajuk vektor dalam kod kami untuk menggunakan fungsinya.
  3. Sertakan ruang nama std dalam kod kami untuk menggunakan kelasnya tanpa memanggilnya.
  4. Panggil fungsi utama (). Logik program harus ditambahkan dalam badan fungsi ini.
  5. Buat vektor bernama vector1 untuk menyimpan bilangan bulat.
  6. Gunakan gelung untuk untuk membuat pemboleh ubah x dengan nilai dari 1 hingga 10.
  7. Tolak nilai pemboleh ubah x ke dalam vektor.
  8. Cetak ukuran vektor di samping teks lain di konsol.
  9. Cetak kapasiti vektor di samping teks lain di konsol.
  10. Cetak jumlah maksimum item yang dapat ditampung oleh vektor di samping teks lain di konsol.
  11. Ubah saiz vektor untuk menahan hanya 5 elemen.
  12. Cetak ukuran vektor baru bersama teks lain.
  13. Periksa sama ada vektor tidak kosong.
  14. Cetak teks pada konsol jika vektor tidak kosong.
  15. Gunakan pernyataan lain untuk menyatakan apa yang perlu dilakukan sekiranya vektor kosong.
  16. Teks untuk dicetak pada konsol jika vektor kosong.
  17. Program mesti mengembalikan nilai setelah berjaya diselesaikan.
  18. Akhir badan fungsi utama ().

Ringkasan:

  • Vektor C ++ adalah array dinamik yang mampu mengubah ukuran dirinya secara automatik apabila elemen ditambahkan atau dihapuskan darinya.
  • Penyimpanan untuk vektor dikendalikan secara automatik oleh bekas.
  • Elemen vektor disimpan dalam simpanan bersambung agar dapat diakses kemudian dilalui menggunakan iterator.
  • Penyisipan data baru ke vektor dilakukan di hujungnya.
  • Penyisipan data ke dalam vektor memerlukan masa berbeza.
  • Penyingkiran elemen dari vektor memerlukan masa yang berterusan.
  • Penyisipan atau penghapusan elemen pada permulaan memerlukan masa linear.
  • Vektor harus digunakan semasa berurusan dengan elemen data yang berubah secara konsisten.
  • Anda juga boleh menggunakan vektor jika ukuran data tidak diketahui sebelum bermula.