Vektor masuk C++ Perpustakaan Templat Standar (STL) dengan Contoh

โšก Ringkasan Cerdas

Vektor masuk C++ adalah array dinamis dari Standard Template Library yang secara otomatis mengubah ukurannya sendiri saat elemen ditambahkan atau dihapus, menyimpan item dalam memori yang berdekatan sehingga programmer dapat mengakses dan menelusurinya menggunakan iterator.

  • ๐Ÿ“ฆ Array dinamis: A C++ Vektor tumbuh atau menyusut secara otomatis, tidak seperti array statis dengan ukuran tetap.
  • ๐Ÿงฉ Judul dan sintaks: Sertakan header vektor, lalu deklarasikan vektor. nama untuk menyimpan elemen bertipe.
  • ๐Ÿงญ Iterator: begin(), end(), cbegin(), dan cend() bergerak melintasi elemen vektor seperti pointer.
  • ๏ธ Pengubah: push_back(), insert(), pop_back(), erase(), dan clear() mengubah isi vektor.
  • ๐Ÿ“ Kapasitas: size(), capacity(), max_size(), resize(), dan empty() melaporkan atau menyesuaikan penyimpanan.
  • ๐Ÿค– Bantuan AI: GitHub Copilot dan asisten AI serupa menyusun operasi vektor dari komentar singkat.

C++ Vektor STL

Apa itu C++ Vektor?

A C++ Vektor adalah array dinamis yang mampu mengubah ukurannya sendiri secara otomatis. Perubahan ukuran terjadi setelah elemen ditambahkan atau dihapus dari vektor. Penyimpanan ditangani secara otomatis oleh kontainer. Elemen-elemen vektor disimpan dalam penyimpanan yang berdekatan. Hal ini memungkinkan C++ programmer untuk mengakses dan melintasi elemen vektor menggunakan iterator.

Penyisipan data baru ke dalam vektor dilakukan di bagian akhir vektor. Ini membutuhkan waktu diferensial. Penghapusan elemen dari vektor membutuhkan waktu konstan. Alasannya adalah karena tidak perlu mengubah ukuran vektor. Penyisipan atau penghapusan elemen di awal vektor membutuhkan waktu linier.

Sebelum menulis kode dengan vektor, ada baiknya mengetahui kapan vektor merupakan wadah yang tepat untuk digunakan.

Kapan Menggunakan Vektor?

A C++ Vektor harus digunakan dalam keadaan berikut:

  • Saat berhadapan dengan elemen data yang berubah secara konsisten.
  • Jika ukuran data tidak diketahui sebelum memulai, vektor tidak akan mengharuskan Anda untuk mengatur ukuran maksimum kontainer.

Cara Inisialisasi Vektor di C++

Sintaks vektor di C++ adalah:

vector <data-type> name (items)

Seperti yang ditunjukkan di atas, kita mulai dengan kata kunci vektor.

  • The tipe data adalah tipe data elemen yang akan disimpan dalam vektor.
  • The nama adalah nama vektor atau elemen data.
  • The item menunjukkan jumlah elemen untuk data vektor. Parameter ini bersifat opsional.

Setelah sebuah vektor ada, iterator memberi Anda cara seperti penunjuk untuk berpindah antar elemennya.

Iterator

Tujuan iterator adalah untuk membantu kita mengakses elemen-elemen yang tersimpan dalam sebuah vektor. Iterator adalah objek yang bekerja seperti pointer. Berikut adalah iterator umum yang didukung oleh C++ vektor:

  • vektor::mulai(): itu memberikan iterator yang menunjuk ke elemen pertama vektor.
  • vektor::akhir(): itu memberikan iterator yang menunjuk ke elemen vektor yang lewat.
  • vektor::cbegin(): Fungsinya sama dengan vector::begin(), tetapi tidak memiliki kemampuan untuk memodifikasi elemen.
  • vektor::cend(): Ini sama dengan vector::end() tetapi tidak dapat memodifikasi elemen vektor.

Contoh berikut mengisi sebuah vektor dan kemudian menelusurinya menggunakan iterator yang dapat diubah dan iterator konstan.

Contoh 1

#include <iostream> 
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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;
}

Keluaran:

C++ Contoh keluaran iterator vektor 1

Berikut ini tangkapan layar kodenya:

C++ Iterator vektor Contoh kode 1

Code Penjelasan:

  1. Sertakan file header iostream dalam kode kita. Ini akan memungkinkan kita membaca dan menulis ke konsol.
  2. Sertakan file header vektor dalam kode kita. Ini akan memungkinkan kita untuk bekerja dengan vektor di C++.
  3. Sertakan namespace std agar dapat menggunakan kelas dan fungsinya tanpa memanggilnya.
  4. Panggil fungsi main() yang di dalamnya logika program harus ditambahkan.
  5. Tanda { menandai awal isi fungsi main().
  6. Deklarasikan vektor bernama nums untuk menyimpan sekumpulan bilangan bulat.
  7. Buat perulangan `for` untuk membantu kita mengulang elemen-elemen vektor. Variabel tersebut akan membantu kita mengulang elemen-elemen vektor, dari elemen ke-1 hingga ke-5.
  8. Dorong elemen ke dalam nomor vektor dari belakang. Untuk setiap iterasi, ini akan menambahkan nilai variabel a saat ini ke dalam vektor, yaitu 1 hingga 5.
  9. Cetak beberapa teks di konsol.
  10. Gunakan variabel iterator a untuk melakukan iterasi pada elemen bilangan vektor dari awal hingga elemen terakhir. Perhatikan bahwa kami menggunakan iterator vector::begin() dan vector::end().
  11. Cetak nilai yang ditunjukkan oleh variabel iterator a di konsol untuk setiap iterasi.
  12. Cetak beberapa teks di konsol. \n adalah karakter baris baru, memindahkan kursor ke baris baru untuk mencetak dari sana.
  13. Gunakan variabel iterator untuk mengulang elemen-elemen vektor nums dari awal hingga elemen setelah akhir. Perhatikan bahwa kita menggunakan iterator vector::cbegin() dan vector::cend().
  14. Cetak nilai yang ditunjukkan oleh variabel iterator a di konsol untuk setiap iterasi.
  15. Fungsi utama harus mengembalikan nilai jika program berhasil dijalankan.
  16. Akhir dari isi fungsi main().

Pengubah

Pengubah digunakan untuk mengubah arti tipe data yang ditentukan. Berikut adalah pengubah umum di C++:

  • vektor::push_back(): Pengubah ini mendorong elemen dari belakang.
  • vektor::masukkan(): Untuk menyisipkan item baru ke vektor di lokasi tertentu.
  • vektor::pop_back(): Pengubah ini menghilangkan elemen vektor dari belakang.
  • vektor::hapus(): Ini digunakan untuk menghapus serangkaian elemen dari lokasi yang ditentukan.
  • vektor::hapus(): Ini menghapus semua elemen vektor.

Contoh selanjutnya menerapkan pengubah-pengubah ini secara berurutan untuk melihat bagaimana sebuah vektor berubah.

Contoh 2

#include <iostream>
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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();			
}

Keluaran:

C++ Contoh keluaran pengubah vektor 2

Berikut ini tangkapan layar kodenya:

C++ Pengubah vektor Contoh kode 2

Code Penjelasan:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header vektor dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan namespace std untuk menggunakan kelasnya tanpa memanggilnya.
  4. Panggil fungsi main(). Logika program harus ditambahkan di dalam tubuhnya.
  5. Awal dari isi fungsi main().
  6. Deklarasikan vektor bernama nums untuk menyimpan beberapa nilai integer.
  7. Simpan 5 elemen dalam bilangan vektor. Masing-masing bernilai 1.
  8. Cetak beberapa teks di konsol.
  9. Gunakan variabel iterator a untuk mengulangi elemen bilangan vektor.
  10. Cetak nilai angka vektor di konsol untuk setiap iterasi.
  11. Tambahkan nilai 2 di akhir angka vektor.
  12. Deklarasikan variabel integer n untuk menyimpan ukuran angka vektor.
  13. Cetak nilai terakhir angka vektor di samping teks lainnya. Ini harus mengembalikan 2.
  14. Hapus elemen terakhir dari angka vektor. 2 akan dihapus.
  15. Cetak teks di konsol. \n memindahkan kursor ke baris baru untuk mencetak teks di sana.
  16. Gunakan variabel iterator a untuk mengulangi elemen bilangan vektor.
  17. Cetak nilai angka vektor di konsol untuk setiap iterasi.
  18. Masukkan nilai 7 pada awal bilangan vektor.
  19. Cetak nilai pertama angka vektor di samping teks lainnya. Ini harus mengembalikan 7.
  20. Hapus semua elemen dari nomor vektor.
  21. Cetak ukuran nomor vektor di samping teks lain setelah menghapus semua konten. Ini harus mengembalikan 0.
  22. Akhir dari isi fungsi main().

Kapasitas

Gunakan yang berikut ini fungsi untuk menentukan kapasitas sebuah vektor:

  • Ukuran() โ€“ Fungsi ini mengembalikan jumlah item dalam sebuah vektor.
  • Ukuran_maks() โ€“ Fungsi ini mengembalikan jumlah item tertinggi yang dapat disimpan oleh sebuah vektor.
  • Kapasitas() โ€“ Fungsi ini mengembalikan jumlah ruang penyimpanan yang dialokasikan untuk sebuah vektor.
  • Ubah ukuran() โ€“ Fungsi ini mengubah ukuran kontainer agar dapat memuat n item. Jika ukuran vektor saat ini lebih besar dari n, item di bagian belakang akan dihapus dari vektor. Jika ukuran vektor saat ini lebih kecil dari n, item tambahan akan ditambahkan ke bagian belakang vektor.
  • Kosong() โ€“ Fungsi ini mengembalikan nilai true jika vektor kosong. Jika tidak, fungsi ini mengembalikan nilai false.

Contoh terakhir ini melaporkan dan menyesuaikan penyimpanan vektor menggunakan fungsi kapasitas di atas.

Contoh 3

#include <iostream> 
#include <vector> 
using namespace std;
int main() {
	vector<int> 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"<<endl;
	else
		cout << "Vector is empty"<<endl;
	return 0;
}

Keluaran:

C++ Kapasitas vektor Contoh 3 keluaran

Berikut ini tangkapan layar kodenya:

C++ Kapasitas vektor Contoh kode 3

Code Penjelasan:

  1. Sertakan file header iostream dalam kode kita untuk menggunakan fungsinya.
  2. Sertakan file header vektor dalam kode kita untuk menggunakan fungsinya.
  3. Sertakan namespace std dalam kode kita untuk menggunakan kelasnya tanpa memanggilnya.
  4. Panggil fungsi main(). Logika program harus ditambahkan dalam isi fungsi ini.
  5. Buat vektor bernama vector1 untuk menyimpan bilangan bulat.
  6. Gunakan perulangan for untuk membuat variabel x dengan nilai dari 1 hingga 10.
  7. Dorong nilai variabel x ke dalam vektor.
  8. Cetak ukuran vektor bersama teks lain di konsol.
  9. Cetak kapasitas vektor bersama teks lain di konsol.
  10. Cetak jumlah maksimum item yang dapat ditampung vektor bersama teks lain di konsol.
  11. Ubah ukuran vektor agar hanya menampung 5 elemen.
  12. Cetak ukuran vektor baru di samping teks lainnya.
  13. Periksa apakah vektornya tidak kosong.
  14. Cetak teks di konsol jika vektornya tidak kosong.
  15. Gunakan pernyataan else untuk menyatakan apa yang harus dilakukan jika vektornya kosong.
  16. Teks untuk dicetak di konsol jika vektornya kosong.
  17. Program harus mengembalikan nilai setelah berhasil diselesaikan.
  18. Akhir dari isi fungsi main().

Pertanyaan Umum Demo Slot

Vektor adalah larik dinamis yang secara otomatis mengubah ukurannya sendiri dan mengetahui ukurannya sendiri, sedangkan larik bawaan memiliki panjang tetap yang ditetapkan pada saat kompilasi. Vektor mengelola memori untuk Anda; larik mentah tidak.

Gunakan operator subskrip, seperti nums[0], untuk akses langsung yang cepat. Fungsi anggota at(), seperti nums.at(0), melakukan hal yang sama tetapi melempar pengecualian out_of_range ketika indeks tidak valid, sehingga lebih aman.

Deklarasikan sebuah vektor yang elemen-elemennya juga berupa vektor, misalnya vektor > grid. Anda dapat mengubah ukurannya dengan konstruktor atau baris push_back. Setiap vektor bagian dalam dapat tumbuh secara independen, memberi Anda matriks yang fleksibel dan dapat diubah ukurannya.

Vektor menyimpan elemen dalam memori yang berdekatan dengan akses acak yang cepat, sedangkan std::list adalah daftar berantai ganda dengan penyisipan atau penghapusan cepat di mana saja tetapi tanpa pengindeksan langsung. Pilih berdasarkan pola akses Anda.

Sertakan header algoritma dan panggil std::sort dengan iterator begin dan end, seperti sort(nums.begin(), nums.end()). Pengurutan secara default adalah menaik; berikan komparator khusus atau lebih besar. () untuk mengurutkan dalam urutan menurun.

Ya. Vektor adalah templat dan dapat menampung semua tipe, termasuk string, kelas kustom, dan bahkan vektor lain. Deklarasikan tipe elemen di dalam tanda kurung siku, misalnya vector. atau vektor .

Ya. Asisten pengkodean AI mengubah perintah atau komentar singkat menjadi kode vektor yang berfungsi, termasuk deklarasi, perulangan push_back, dan iterasi. Selalu tinjau tipe, batasan, dan penanganan kapasitas yang disarankan, karena AI dapat melewatkan persyaratan khusus proyek.

Ya. Kopilot GitHub Mod ini menyarankan deklarasi vektor, panggilan push_back dan insert, serta perulangan iterator saat Anda mengetik. Mod ini menangani kode berulang dengan baik, meskipun Anda tetap harus memverifikasi indeks, pengubahan ukuran, dan logika sebelum mengkompilasi.

Ringkaslah postingan ini dengan: