[1번]
/*
다음은 배열의 원소를 복사하는 함수 템플릿 Copy()의 호출 코드입니다.
함수 템플릿 Copy()를 작성하세요
*/
#include <iostream>
using namespace std;
struct MyType
{
int x, y; //좌표
};
ostream &operator<<(ostream &os, MyType &m)
{
os << "(" << m.x << ", " << m.y << ")" << " ";
return os;
}
template <typename T>
void Copy(T *a2, T *a1, int size)
{
for (int i = 0; i < size; i++)
a2[i] = a1[i];
}
int main(void)
{
int arr1[5] = { 10, 20, 30, 40, 50 };
int arr2[5];
//Copy(t, s, n) t:목적지 주소, s:소스 주소, n:원소 개수
Copy(arr2, arr1, 5);
for (int i = 0; i < 5; i++) //확인용
cout << arr2[i] << " ";
cout << endl;
MyType myArr1[5] = { {0, 0}, {1, 1}, {2, 2}, {3, 3}, {4, 4} };
MyType myArr2[5];
Copy(myArr2, myArr1, 5);
for (int i = 0; i < 5; i++) //확인용
cout << myArr2[i] << " ";
cout << endl;
return 0;
}
[2번]
/*
다음은 Push(), Pop(), Empty() 인터페이스를 갖는 Stack 객체의 사용 코드입니다.
최소한의 Stack 클래스를 작성하세요
*/
#include <iostream>
using namespace std;
template <typename T>
class Stack
{
private:
T *arr;
int top;
int size;
public:
Stack(int s = 10) :size(s), top(-1)
{
arr = new T[size];
}
void Push(T data)
{
arr[++top] = data;
}
bool Empty()
{
return top == -1;
}
T Pop()
{
return arr[top--];
}
};
int main(void)
{
Stack<int> st;
st.Push(10);
st.Push(20);
st.Push(30);
if (!st.Empty())
cout << st.Pop() << endl;
if (!st.Empty())
cout << st.Pop() << endl;
if (!st.Empty())
cout << st.Pop() << endl;
return 0;
}
[3번]
/*
다음은 Push(), Pop(), Empty() 인터페이스를 갖는 Queue 객체의 사용 코드입니다.
최소한의 Queue 클래스를 작성하세요
*/
#include <iostream>
using namespace std;
template <typename T>
class Queue
{
private:
T *arr;
int front, rear;
int size;
public:
Queue(int s = 10) :front(0), rear(0), size(s)
{
arr = new T[size];
}
void Push(T data)
{
arr[rear++] = data;
}
bool Empty()
{
return (front == rear);
}
T Pop()
{
return arr[front++];
}
};
int main(void)
{
Queue<int> q;
q.Push(10);
q.Push(20);
q.Push(30);
if (!q.Empty())
cout << q.Pop() << endl;
if (!q.Empty())
cout << q.Pop() << endl;
if (!q.Empty())
cout << q.Pop() << endl;
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
[참고] 뇌를 자극하는 C++ STL
'C++ > 뇌를 자극하는 C++ STL' 카테고리의 다른 글
뇌를 자극하는 C++ STL 이것만은 알고 갑시다 6장 (0) | 2018.01.07 |
---|---|
뇌를 자극하는 C++ STL 이것만은 알고 갑시다 5장 (0) | 2018.01.06 |
뇌를 자극하는 C++ STL 이것만은 알고 갑시다 3장 (0) | 2017.11.16 |
뇌를 자극하는 C++ STL 2장 중요 예제 (0) | 2017.11.11 |
뇌를 자극하는 C++ STL 이것만은 알고 갑시다 1장 (0) | 2017.11.03 |