Menu
CoddyTech

Memodifikasi Algoritma

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

Dalam pelajaran ini, kamu akan mempelajari algoritma modifikasi yang tersedia di STL C++.
Algoritma modifikasi dirancang untuk mengubah nilai elemen di dalam container.


Kita akan membahas algoritma berikut:

  • copy()
  • fill()
  • move()
  • swap()
  • reverse()

Method copy()

Method copy() menyalin elemen dari rentang yang ditentukan oleh dua iterator ke rentang yang dimulai dari iterator ketiga.

vector<int> v1 = {1, 2, 3};
vector<int> v2;

copy(v1.begin(), v1.end(), v2.begin());

for(auto value : v1)
	cout << value << " ";
Output:
1 2 3

Kita menggunakan method copy() untuk menyalin isi vector v1 ke vector v2.


Method fill()

Method ini menetapkan nilai yang diberikan ke setiap elemen dalam rentang yang ditentukan oleh dua iterator.

vector<int> numbers(10); // membuat vector kosong dengan 10 elemen

fill(numbers.begin(), numbers.end(), 1);

for(auto value : numbers)
	cout << value << " ";

cout << endl;

fill(numbers.begin(), numbers.end() - 3, 2);

for(auto value : numbers)
	cout << value << " ";
Output:
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 1 1 1

Method move()

Method ini memindahkan elemen dari container saat ini dan mengembalikan rvalue-nya.

vector<string> names;

string first = "John";
string second = "Max";

names.push_back(first);
names.push_back(move(second));

cout << first << endl;
cout << second << endl;
cout << names[1];
Output:
John

Max

Seperti yang kamu lihat, method move() mengosongkan string, tetapi mengembalikan nilainya, lalu method push_back() memasukkan nilai tersebut ke dalam vector.


Method swap()

Method ini menukar elemen dari dua container dengan tipe yang sama.

vector<int> v1 = {1, 2, 3};
vector<int> v2 = {4, 5, 6};

for(auto value : v1)
	cout << value << " ";
for(auto value : v2)
	cout << value << " ";

cout << endl;

swap(v1, v2);

for(auto value : v1)
	cout << value << " ";
for(auto value : v2)
	cout << value << " ";
Output:
1 2 3 4 5 6
4 5 6 1 2 3

Method reverse()

Method ini membalik urutan elemen dalam satu container, lebih tepatnya dalam rentang yang ditentukan oleh dua iterator.

vector<int> a = {1, 2, 3, 4, 5};

for(auto value : a)
	cout << value << " ";
	
cout << endl;
	
reverse(a.begin(), a.end());

for(auto value : a)
	cout << value << " ";
Output:
1 2 3 4 5
5 4 3 2 1

 

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

Semua pelajaran di C++ - Standard Template Library

Latihan sendiri: Compiler C++ online