본문 바로가기
카테고리 없음

C++ STL-연결리스트(std::list)-사용법-링크드리스트

by 강경민님 2023. 9. 19.

값 삽입

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

list.push_back(6);    // {1, 2, 3, 4, 5, 6,}

list.insert(next(list1.begin()), 0);    // {1, 0, 2, 3, 4, 5, 6}

list.insert(list.end(), 7);    // {1, 0, 2, 3, 4, 5, 6, 7}

 

 

값 제거

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

list.pop_back();    // {1, 2, 3, 4}

 

 

벡터와 달리 연결 리스트에서는 삽입 또는 삭제 동작에서 원소를 이동할 필요가 없으며 반복자가 무효화되지 않는다

//벡터

std::vector<int> vec = {1, 2, 3, 4, 5};

auto v_it4 = vec.begin() + 4;    // v_it4는 vec[4]를 가리킴

vec.insert(vec.begin() + 2, 0);    // 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 반복자 유효