This is an old revision of the document!
HW7-1: List class 만들기
List클래스는 한가지 타입의 데이터 여러개를 보관해 준다. List가 저장할 수 있는 데이터 타입은 템플릿을 이용해서 어떤 데이터 타입도 보관이 가능하다. 구체적으로 다음과 같은 기능을 제공한다.
테스트 코드는 다음과 같다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
#define check( s, a, b ) { \
if( (a) != (b) ) { \
cout << "## FAIL (" << (s) << "): " << (a) << " != " << (b) << endl; \
} \
else { \
cout << "## PASS (" << (s) << "): " << (a) << endl; \
} \
}
class Student {
string name;
int score;
public:
Student(string n, int s) : name(n), score(s) {};
bool operator==(const Student &s) { return name==s.name && score==s.score; }
};
//***********
// 여기에 자신의 코드를 넣는다
// 이부분 외에는 수정하지 말 것
//***********
int main()
{
List<string> grocery;
grocery.add("milk");
grocery.add("eggs");
grocery.add("bread");
check("add()/size()", grocery.size(), 3 );
grocery.display(); // 각 줄에 milk, eggs, bread가 출력됨 (세줄)
grocery.clear();
check("clear()", grocery.size(), 0 );
List<Student> students;
Student s1("Shin", 88);
Student s2("Kim", 72);
Student s3("Cho", 91);
students.add( s1 );
students.add( s2 );
students.add( s3 );
Student s4("Shin", 90);
check("exist()", students.exist( s4 ), false );
check("exist()", students.exist( s3 ), true );
system("pause");
return 0;
}