Menu
CoddyTech

Vector

Pelajaran 5 dari 23 dalam kursus C++ - Standard Template Library di Coddy.

Vector dalam C++ STL pada dasarnya adalah array yang ukurannya dapat berubah secara dinamis. Vector dapat mengubah ukurannya secara otomatis saat elemen ditambahkan atau dihapus. Elemen vector disimpan dalam penyimpanan yang berurutan, sehingga dapat diakses, diubah, dan ditelusuri menggunakan iterator.


Dalam vector, data ditambahkan dari bagian belakang. Struktur data ini lebih lambat daripada array, tetapi vector cukup cepat untuk digunakan dalam pemecahan masalah, bahkan pada tingkat kompleksitas kompetisi. 


Vector dalam C++ dibuat dengan menyertakan header-nya di bagian atas menggunakan #include <vector>. 

!Perhatian: Dalam C++ ada file header nonstandar bernama bits/stdc++.h. Kamu dapat menyertakannya di bagian atas file C++ dan menggunakan elemen apa pun dari standard library tanpa perlu menyertakannya satu per satu. (#include <bits/stdc++.h)

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	// Kode...
	
	return 0;
}
#include <bits/stdc++.h>

using namespace std;

int main()
{
	// Kode...
	
	return 0;
}

Jadi, bagaimana cara membuat, menginisialisasi, dan menggunakan vector? Kita menggunakan kata kunci vector<>. Di dalam <>, kita menuliskan tipe variabel, yaitu tipe data elemen yang akan kita simpan di dalam vector. Jika kita ingin mendeklarasikan vector untuk menyimpan bilangan bulat, kita menggunakan vector<int>.

#include <bits/stdc++.h>

using namespace std;

int main()
{
	vector<int> numbers = {1, 2, 3};
	
	cout << numbers[0];
	
	return 0;
}
Output:
1

Seperti yang terlihat di atas, vector berperilaku persis seperti array. Kita mendeklarasikan vector bertipe int dengan nama numbers, lalu menginisialisasinya dengan beberapa nilai. Kemudian, dengan menggunakan tanda kurung siku, yaitu [], kita menampilkan elemen pertama, yaitu elemen pada indeks 0.


Kita menambahkan elemen ke bagian belakang vector menggunakan fungsi push_back(). Method push_back() menambahkan elemen baru setelah elemen terakhir dalam vector.

#include <bits/stdc++.h>

using namespace std;

int main()
{
	vector<int> numbers = {1, 2, 3};
	
	cout << numbers[2] << endl;
	
	numbers.push_back(10);
	
	cout << numbers[3];
	
	return 0;
}
Output:
3
10

Seperti yang kamu lihat, kita menggunakan method dengan nama vector dan tanda titik, yaitu .. Setelah method push_back() digunakan, ukuran vector bertambah satu.

Kita juga memiliki method size() yang dapat digunakan untuk mengetahui jumlah elemen dalam vector. 

#include <bits/stdc++.h>

using namespace std;

int main()
{
	vector<int> numbers = {1, 2, 3};
	
	cout << numbers.size();
	
	return 0;
}
Output:
3

Kita sering menggunakan method size() saat tidak mengetahui jumlah elemen dalam vector, tetapi ingin menelusurinya dengan perulangan. Karena itu, kita menggunakan vector.size() dalam kondisi perulangan.


Struktur data vector memiliki banyak fungsi dan fitur, seperti fungsi resize(n) yang mengubah ukuran vector menjadi n, dan masih banyak lagi. Namun, kita akan membahasnya lagi saat mempelajari algoritma dan fungsi. Untuk sekarang, ingat bahwa vector adalah array yang ukurannya dapat berubah secara dinamis, cara mendeklarasikannya, dan bahwa kita menambahkan elemen baru menggunakan method push_back().


Contoh: Di bawah ini adalah contoh program yang meminta pengguna terus memasukkan angka hingga memasukkan -1. Kita akan menggunakan perulangan dan vector untuk menyimpan angka-angka tersebut karena kita tidak tahu berapa banyak elemennya.

#include <bits/stdc++.h>

using namespace std;

int main()
{
	int x;
	vector<int> numbers;
	
	while(x != -1)
	{
		cin >> x;
		numbers.push_back(x);
	}
	
	return 0;
}

Di setiap pelajaran, kamu akan diberikan tabel berisi method yang tersedia untuk digunakan dengan struktur data C++ tertentu.

Method Vector

MethodFungsi
push_back()Menambahkan elemen baru di akhir vector
pop_back()Menghapus elemen terakhir dari vector
swap()Menukar elemen yang ditentukan
front()Memberikan referensi ke elemen pertama
back()Memberikan referensi ke elemen terakhir
empty()Menentukan apakah vector kosong atau tidak
clear()Menghapus semua elemen dari vector
resize()Mengubah ukuran vector
size()Mengembalikan jumlah elemen dalam vector
insert()Menyisipkan elemen yang ditentukan pada posisi yang ditentukan
challenge icon

Tantangan

Mudah

Bilangan positif dimasukkan melalui input hingga -1 dimasukkan. Setelah itu, bilangan asli terakhir yang diberikan, N, menjadi bilangan konteksmu. Keluarkan setiap elemen yang dapat membagi N tanpa sisa.

Contoh:

 

Input
5
10
15
-1
100
Output
5
10

karena 100 habis dibagi 5 dan 10, tetapi tidak habis dibagi 15

 

Input
2
4
6
8
-1
12
Output
2
4
6

Karena 12 habis dibagi 2, 4, dan 6, tetapi tidak habis dibagi 8

Coba sendiri

#include <vector>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

Semua pelajaran di C++ - Standard Template Library

Latihan sendiri: Compiler C++ online