728x90
1. 3번 템플릿을 선언하기 위해 사용하는 키워드는 template이다.
2. 3번 템플릿을 사용하면 컴파일 오류 메시지가 빈약하여 디버깅에 많은 어려움이 있다.
3. 2번
4. 2번
5.
template <class T>
bool equal(T a, T b) {
if (a == b) return true;
else return false;
}
6.
template <class T>
void insert(T a, T *b, int index) {
b[index] = a;
}
7.
template <class T> T max(T x, T y) {
if (x > y) return x;
else return y;
}
8.
template <class TYPE>
bool equals(TYPE x, TYPE y) {
if (x == y) return true;
else return false;
}
9.
(1)
int avg(int *p, int n) {
int k;
int sum = 0;
for (k = 0; k < n; k++) sum += p[k];
return sum / n;
}
(2)
double avg(double *p, int n) {
int k;
double sum = 0;
for (k = 0; k < n; k++) sum += p[k];
return sum / n;
}
10.
(1) 예
(2) 3.14
(3) special 100
11. 3번 템플릿 함수와 동일한 이름의 함수가 중복되어 있을 때, 중복 함수가 우선적으로 바인딩된다.
12.
(1)
template <class T> class Container {
T *p;
int size;
public:
Container(int n);
~Container();
void set(int index, T value) { p[index] = value; }
T get(int index);
};
(2)
template <class T>
Container<T>::Container(int n) {
p = new T[n];
size = n;
}
(3)
template <class T>
Container<T>::~Container() {
delete[] p;
}
(4)
template <class T>
T Container<T>::get(int index) {
return p[index];
}
(5)
Container<char> c(26);
(6)
int main() {
Container<char> c(26);
for (int i = 0; i < 26; i++) {
c.set(i, 'a' + i);
}
for (int i = 25; i >= 0; i--) {
cout << c.get(i);
}
}
13. 1번
14.
(1) #include <vector>
(2) #include <list>
(3) #include <algorithm>
(4) #include <algorithm>
15.
vector<double> v;
v.push_back(3.1);
v.push_back(4.1);
for (auto it = v.begin(); it != v.end(); it++)
cout << *it << ' ';
16.
vector<char>::iterator it;
17. #include <map>
18.(답지 없음)
(1) vector 시간을 배열의 index로 보면 시간으로 온도를 알 수 있다.
(2) map 지역을 검색하여 시각을 알 수 있다.
728x90
'C++ > 명품 C++ Programming' 카테고리의 다른 글
명품 C++ 11장 연습문제 - 이론 문제 (0) | 2022.06.04 |
---|---|
명품 C++ 10장 연습문제 - 실습 문제 (0) | 2022.05.26 |
명품 C++ 9장 연습문제 - 실습 문제 (0) | 2022.05.20 |
명품 C++ 9장 연습문제 - 이론 문제 (0) | 2022.05.12 |
명품 C++ 8장 연습문제 - 실습 문제 (0) | 2022.02.08 |
댓글