Skip to content

Commit e9966de

Browse files
committed
-> practice on templates
1 parent 193a664 commit e9966de

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

practice10.cpp

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
11
#include <iostream>
2+
#include <string>
23

34
using namespace std;
45

5-
void preview(int *arr /*arr[]: Also valid */, int size)
6+
template <typename T, typename S, size_t n>
7+
void preview(T (&arr)[n], S name)
68
{
7-
for (int i = 0; i < size; i++)
9+
int length = sizeof(arr) / sizeof(T);
10+
11+
cout << endl;
12+
cout << "sizeof(arr) : " << sizeof(arr) << endl;
13+
cout << "sizeof(T) : " << sizeof(T) << endl;
14+
cout << "LEN: " << length << endl;
15+
16+
for (int i = 0; i < length; i++)
817
{
9-
cout << "*(arr + i): " << *(arr + i) << endl;
18+
cout << "*(arr + i): " << *(arr + i)
19+
<< " | "
20+
<< "arr[" << i << "]: " << arr[i]
21+
<< " " << name << endl;
1022
}
1123
}
1224

1325
int main()
1426
{
15-
int arr[] = {1, 2, 3, 4, 5};
16-
preview(arr, sizeof(arr) / sizeof(arr[0]));
27+
int arr_i[] = {1, 2, 3, 4, 5};
28+
char arr_c[] = {'A', 'R', 'Y', 'A', 'N'};
29+
30+
preview(arr_c, "name1");
31+
preview(arr_i, "name22");
32+
1733
return 1;
1834
}

0 commit comments

Comments
 (0)