9. main() 함수를 만들고 앞서 구현한 클래스를 사용하는 코드를 추가합니다.
int main()
{
singly_ll sll = {1, 2, 3};
sll.push_front(0);
std::cout << "첫 번째 리스트: ";
for (auto i : sll)
std::cout << i << " "; // 출력: 0 1 2 3
std::cout << std::endl;
auto sll2 = sll;
sll2.push_front(-1);
std::cout << "첫 번째 리스트를 복사한 후, 맨 앞에 -1을 추가: ";
for (auto i : sll2)
std::cout << i << ' '; // 출력: -1 0 1 2 3
std::cout << std::endl;
std::cout << "깊은 복사 후 첫 번째 리스트: ";
for (auto i : sll)
std::cout << i << ' '; // 출력: 0 1 2 3
std::cout << std::endl;
}
10. 위 예제 코드를 실행하면 다음과 같은 출력이 나타납니다.
첫 번째 리스트: 0 1 2 3
첫 번째 리스트를 복사한 후, 맨 앞에 -1을 추가: -1 0 1 2 3
깊은 복사 후 첫 번째 리스트: 0 1 2 3
이번 연습 문제에서 std::initializer_list를 이용하여 연결 리스트를 초기화하는 방법을 사용했습니다. push(), pop_front(), back() 같은 함수를 사용할 수도 있으며, 이 예제에서는 sll2 리스트에 push_front() 함수로 새로운 원소를 추가했습니다. sll2가 깊은 복사에 의해 생성되었기 때문에 sll2에 새 원소를 추가해도 sll 리스트에는 여전히 네 개의 원소가 있음을 확인할 수 있습니다.