Standard Template Library
Soal & Penyelesaian
1. Tulislah sebuah program C++ untuk
mendemonstrasikan bagaimana iterator digunakan dengan sebuah Vector.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//iteratorDenganVektor.cpp
//Mendemonstrasikan
iterator STL
#include <iostream>
#include <vector>
#include <conio.h>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<int> kontainer;
for
(int i = 1; i <= 4; i++)
kontainer.push_back(i);
cout << "Berikut adalah apa yang ada dalam kontainer:\n";
vector<int>::iterator p;
for
(p = kontainer.begin(); p != kontainer.end(); p++)
cout << *p << "
";
cout << endl;
cout << "Penetapan tiap entri menjadi 0:\n";
for
(p = kontainer.begin(); p != kontainer.end(); p++)
*p = 0;
cout << "kontainer sekarang memuat:\n";
for
(p = kontainer.begin(); p != kontainer.end(); p++)
cout << *p << "
";
cout << endl;
getch();
return
0;
}
|
Berikut adalah apa yang ada dalam kontainer:
1 2 3 4
Penetapan tiap entri menjadi 0:
kontainer sekarang memuat:
0 0 0 0
2.
Tulislah sebuah program C++ untuk mendemonstrasikan
iterator bidirectional dan iterator random access.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
//iteratorBiderectionalDanRandomAccess.cpp
#include <iostream>
#include <vector>
#include <conio.h>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<char> kontainer;
kontainer.push_back('A');
kontainer.push_back('B');
kontainer.push_back('C');
kontainer.push_back('D');
for
(int i = 0; i < 4; i++)
cout << "kontainer[" << i << "] == "
<< kontainer[i] <<
endl;
vector<char>::iterator p =
kontainer.begin();
cout << "Entri ketiga adalah " << kontainer[2] << endl;
cout << "Entri ketiga adalah " << p[2] << endl;
cout << "Entri ketiga adalah " << *(p + 2) << endl;
cout << "Kembali ke kontainer[0].\n";
p = kontainer.begin();
cout << "yang memiliki nilai " << *p << endl;
cout << "Dua langkah maju dan satu langkah mundur:\n";
p++;
cout << *p << endl;
p++;
cout << *p << endl;
p--;
cout << *p << endl;
getch();
return
0;
}
|
kontainer[0] == A
kontainer[1] == B
kontainer[2] == C
kontainer[3] == D
Entri ketiga adalah C
Entri ketiga adalah C
Entri ketiga adalah C
Kembali ke kontainer[0].
yang memiliki nilai A
Dua langkah maju dan satu langkah mundur:
B
C
B
3.
Tulislah sebuah program C++ untuk mendemonstrasikan reverse iterator.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//iteratorReverse.cpp
#include <iostream>
#include <vector>
#include <conio.h>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<char> kontainer;
kontainer.push_back('A');
kontainer.push_back('B');
kontainer.push_back('C');
cout << "Maju:\n";
vector<char>::iterator p;
for
(p = kontainer.begin(); p != kontainer.end(); p++)
cout << *p << "
";
cout << endl;
cout << "Reverse:\n";
vector<char>::reverse_iterator rp;
for
(rp = kontainer.rbegin(); rp != kontainer.rend(); rp++)
cout << *rp << "
";
cout << endl;
getch();
return
0;
}
|
Maju:
A B C
Reverse:
C B A
4.
Tulislah sebuah program C++ untuk mendemonstrasikan
kelas template list.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//kelasTemplateList.cpp
//Mendemonstrasikan kelas
template list.
#include <iostream>
#include <list>
#include <conio.h>
using std::cout;
using std::endl;
using std::list;
int main()
{
list<int> objek_list;
for
(int i = 1; i <= 3; i++)
objek_list.push_back(i);
cout << "List memuat:\n";
list<int>::iterator iter;
for
(iter = objek_list.begin(); iter != objek_list.end(); iter++)
cout << *iter << "
";
cout << endl;
cout << "Pengaturan semua entri menjadi 0:\n";
for
(iter = objek_list.begin(); iter != objek_list.end(); iter++)
*iter = 0;
cout << "List sekarang memuat:\n";
for
(iter = objek_list.begin(); iter != objek_list.end(); iter++)
cout << *iter << "
";
cout << endl;
getch();
return
0;
}
|
List memuat:
1 2 3
Pengaturan semua entri menjadi 0:
List sekarang memuat:
0 0 0
5.
Tulislah sebuah program C++ untuk mendemonstrasikan
kelas template stack.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
//kelasTemplateStack.cpp
//Mendemonstrasikan
penggunaan kelas template stack.
#include <iostream>
#include <stack>
#include <conio.h>
using std::cin;
using std::cout;
using std::endl;
using std::stack;
int main()
{
stack<char> s;
cout << "Masukkan sebaris teks:\n";
char
brktnya;
cin.get(brktnya);
while
(brktnya != '\n')
{
s.push(brktnya);
cin.get(brktnya);
}
cout << "Ditulis mundur menjadi:\n";
while
( ! s.empty() )
{
cout << s.top();
s.pop();
}
cout << endl;
getch();
return
0;
}
|
Masukkan sebaris teks:
Teknik Elektro Universitas Gadjah Mada
Ditulis mundur menjadi:
adaM hajdaG satisrevinU ortkelE kinkeT
6.
Tulislah sebuah program C++ untuk mendemonstrasikan
kelas template set.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//kelasTemplateSet.cpp
//Mendemonstrasikan
penggunaan kelas template set.
#include <iostream>
#include <set>
#include <conio.h>
using std::cout;
using std::endl;
using std::set;
int main()
{
set<char> s;
s.insert('A');
s.insert('D');
s.insert('D');
s.insert('C');
s.insert('C');
s.insert('B');
cout << "Set memuat:\n";
set<char>::const_iterator p;
for
(p = s.begin(); p != s.end(); p++)
cout << *p << "
";
cout << endl;
cout << "Menghapus C:\n";
s.erase('C');
for
(p = s.begin(); p != s.end(); p++)
cout << *p << "
";
cout << endl;
getch();
return
0;
}
|
Set memuat:
A B C D
Menghapus C:
A B D
7.
Tulislah sebuah program C++ untuk mendemonstrasikan
kelas template map.
Penyelesaian:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
//kelasTemplateMap.cpp
#include <iostream>
#include <map>
#include <string>
#include <conio.h>
using std::cout;
using std::endl;
using std::map;
using std::string;
int main()
{
map<string, string>
planet;
planet["Merkuri"] = "Planet
yang panas";
planet["Venus"] =
"Atmosfir berupa asam sulfat";
planet["Bumi"] = "Rumah";
planet["Mars"] = "Planet
merah";
planet["Jupiter"] = "Planet
terbesar dalam tata surya kita";
planet["Saturnus"] = "Memiliki
cincin";
planet["Uranus"] = "Masih
misteri";
planet["Neptunus"] = "Dengan
angin 700 km/jam";
planet["Pluto"] = "Planet
kecil";
cout << "Entri untuk Merkuri - "
<< planet["Merkuri"]
<< endl << endl;
if
(planet.find("Merkuri")
!= planet.end( ))
cout << "Merkuri ada dalam map." <<
endl;
if
(planet.find("Ceres") ==
planet.end( ))
cout << "Ceres tidak ada dalam map."
<< endl << endl;
cout << "Beriterasi melalui semua planet: " << endl;
map<string, string>::const_iterator iter;
for (iter = planet.begin(); iter !=
planet.end(); iter++)
{
cout << iter->first <<
" - " << iter->second << endl;
}
getch();
return
0;
}
|
Entri untuk Merkuri - Planet yang panas
Merkuri ada dalam map.
Ceres tidak ada dalam map.
Beriterasi melalui semua planet:
Bumi - Rumah
Jupiter - Planet terbesar dalam tata surya kita
Mars - Planet merah
Merkuri - Planet yang panas
Neptunus - Dengan angin 700 km/jam
Pluto - Planet kecil
Saturnus - Memiliki cincin
Uranus - Masih misteri
Venus - Atmosfir berupa asam sulfat
No comments:
Post a Comment