STL리스트(STL List)

< 자주 사용하는 STL list 키워드 >
size() => 컨테이너(벡터,리스트,맵 등) 안에 들어간 요소의 갯수 반환
push_back() => 뒤에서부터 데이터 추가
pop_back() => 뒤에서부터 데이터 삭제
push_front() => 앞에서부터 데이터 추가
pop_front() => 앞에서부터 데이터 삭제
clear() => 데이터 전체 삭제
begin() => 0번 인덱스
end() => 마지막 인덱스

< 주의 사항 >
벡터는 []인덱스로 접근 가능하지만, 리스트는 인덱스로 접근 불가
(즉, STL 리스트는 메모리공간이 선형으로 연결되어 있지 않다)
따라서 위치를 나타낼때 begin() + 1 과 같이 사용 불가

insert(위치, 값) => 지정된 위치에 값 추가
insert(위치, 갯수, 값) => 지정된 위치에 갯수만큼 값 추가
erase(위치) => 지정된 위치 값 삭제
remove(값) => 값과 같은 데이터를 모두 삭제





예시1) 숫자추가 후 출력


//숫자 10개 추가
for (int i = 0; i < 10; i++)
{
_lNumber.push_back(i + 1);
}

//리스트는 인덱스로 접근이 불가능해 사용할 수 없다.
//for (int i = 0; i < _lNumber.size(); i++)
//{
// cout << _lNumber[i] << endl;
//}

//때문에 우리는 반복자를 통해 순회시켜야 한다
for (_iter = _lNumber.begin(); _iter != _lNumber.end(); _iter++)
{
cout << *_iter << endl;
}

결과







예시2) 3번 인덱스에 1000추가 해라
int index = 0;
for (_iter = _lNumber.begin(); _iter != _lNumber.end(); _iter++, index++)
{
if (index == 3)
{
_iter = _lNumber.insert(_iter, 1000);
}
cout << *_iter << endl;
}

결과



댓글