더북(TheBook)

앞 코드에서 마지막 문장이 수행되면 v_it4 반복자는 무효화되며, v_it4를 이용하여 원소에 접근하려고 하면 예상하지 못한 에러가 발생할 수 있습니다.

std::list<int> lst = {1, 2, 3, 4, 5};

auto l_it4 = next(lst.begin(), 4);

lst.insert(next(lst.begin(), 2), 0); // l_it4 반복자는 여전히 유효합니다.

std::listsize(), push_back(), pop_back() 등의 더 많은 함수를 제공하며, 이들 연산은 O(1) 시간 복잡도로 동작합니다. 그러므로 std::liststd::forward_list보다 더 자주 사용됩니다. std::forward_list는 데이터를 역방향으로 이동하며 접근하지 않아도 되는 경우에 메모리 또는 성능을 최적화하고 싶을 때에만 제한적으로 사용됩니다. 즉, 대부분의 경우에는 std::list를 사용하는 것이 더 나은 선택입니다.

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