더북(TheBook)

  3. 이번에는 pop_back() 함수를 이용하여 리스트 맨 뒤 원소를 제거해보겠습니다. pop_back()std::forward_list에서는 제공하지 않는 함수입니다.

    list1.pop_back(); // {1, 0, 2, 3, 4, 5, 6}

    std::cout << "삽입 & 삭제 후 리스트: ";
    for (auto i : list1)
        std::cout << i << " ";
}

  4. 지금까지 작성한 프로그램을 실행하면 다음과 같은 출력이 나타납니다.

삽입 & 삭제 후 리스트: 1 0 2 3 4 5 6

Note ≡


std::forward_liststd::listpush_front(), insert(), pop_front(), erase() 함수 시간 복잡도는 서로 같지만, 실제로는 std::list에서 좀 더 많은 연산이 필요합니다. 왜냐하면 std::list는 각각의 노드에 두 개의 포인터를 가지고 있고, 삽입 또는 삭제 연산 시 두 개의 포인터를 관리해야 하기 때문입니다. 그러므로 이중 연결 리스트에서 포인터를 관리하기 위해서는 단일 연결 리스트보다 대략 두 배의 연산을 수행해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.