1. 이중링크드 리스트처럼 자신의 원소들을 관리하며 랜덤 액세스를 지원하지 않는다.
하지만 어떠한 위치에서건 삽입과 삭제가 빠르게 이루어진다.
2. []연산자와 at()을 제공하지 않는다. 용량과 재할당과 관련된 함수는 제공하지 않는다.
3. 원소액세스 방법
c.front() - 첫번째원소
c.back() - 마지막 원소
4. 반복자 함수
c.begin(), c.end(), c.rbegin(),crend()
5. 원소의 삽입 및 제거가 따로 멤버함수로서 제공된다.
remove(val) : val인 모든 원소를 제거한다.
remove_if(op) : op(elem)가 true를 반환하는 모든 원소를 제거한다.
ex) 값이 짝수인 모든 원소들을 제거한다.
remove_if(not1(bind2nd(modules<int>(),2)));
6. 스플라이스 함수
c.splice(pos,c2); //모든 원소들을 pos 위치로 이동한다.
c.splice(pos,c2,c2pos); //c2pos에 있는 원소를 c1의 pos위치로 이동한다.
c.splice(pos,c2,c2beg,c2end);//범위의 원소들을 c1의 pos위치 앞으로 이동한다.
c.sort() //정렬
c.sort(op) //op를 정렬기준으로 정렬한다.
c.merge(c2) //합병한다. c2->c으로 이동
c.merge(c2,op) //정렬기준op를 의해 정렬되어 있다는 기준하에 합병한다. c2->c으로 이동
c.reverse() //모든 원소들의 순서를 뒤바꾼다.
ex) 리스트를 활용한 예제
list<int> list1,list2;
for(int i=0;,i<6;++i){
list1.push_back(i);
list2.push_front(i);
}
//list2에서 값을 3으로 가지는 원소의 위치에 list1dml 모든 원소들을 삽입한다.
//find()는 값이 3인 최초의 원소를 위치를 반환한다.
list2.splice(find(list2.begin(),list2.end(), //목적지 위치
3),
list1); //소스 list
//첫번째 원소를 마지막으로 이동시킨다.
list2.splice(list2.end(), //목적지 위치
list2, //소스 list
list2.begin()); //소스 위치
//list2를 정렬한 후 list1에 할당한다. 그리고 나서 list2의 중복된 값들을 제거한다.
list2.sort();
list1 = list2;
list2.unique();
//list2를 list1에 병합한다.
list1.merge(list2);
하지만 어떠한 위치에서건 삽입과 삭제가 빠르게 이루어진다.
2. []연산자와 at()을 제공하지 않는다. 용량과 재할당과 관련된 함수는 제공하지 않는다.
3. 원소액세스 방법
c.front() - 첫번째원소
c.back() - 마지막 원소
4. 반복자 함수
c.begin(), c.end(), c.rbegin(),crend()
5. 원소의 삽입 및 제거가 따로 멤버함수로서 제공된다.
remove(val) : val인 모든 원소를 제거한다.
remove_if(op) : op(elem)가 true를 반환하는 모든 원소를 제거한다.
ex) 값이 짝수인 모든 원소들을 제거한다.
remove_if(not1(bind2nd(modules<int>(),2)));
6. 스플라이스 함수
c.splice(pos,c2); //모든 원소들을 pos 위치로 이동한다.
c.splice(pos,c2,c2pos); //c2pos에 있는 원소를 c1의 pos위치로 이동한다.
c.splice(pos,c2,c2beg,c2end);//범위의 원소들을 c1의 pos위치 앞으로 이동한다.
c.sort() //정렬
c.sort(op) //op를 정렬기준으로 정렬한다.
c.merge(c2) //합병한다. c2->c으로 이동
c.merge(c2,op) //정렬기준op를 의해 정렬되어 있다는 기준하에 합병한다. c2->c으로 이동
c.reverse() //모든 원소들의 순서를 뒤바꾼다.
ex) 리스트를 활용한 예제
list<int> list1,list2;
for(int i=0;,i<6;++i){
list1.push_back(i);
list2.push_front(i);
}
//list2에서 값을 3으로 가지는 원소의 위치에 list1dml 모든 원소들을 삽입한다.
//find()는 값이 3인 최초의 원소를 위치를 반환한다.
list2.splice(find(list2.begin(),list2.end(), //목적지 위치
3),
list1); //소스 list
//첫번째 원소를 마지막으로 이동시킨다.
list2.splice(list2.end(), //목적지 위치
list2, //소스 list
list2.begin()); //소스 위치
//list2를 정렬한 후 list1에 할당한다. 그리고 나서 list2의 중복된 값들을 제거한다.
list2.sort();
list1 = list2;
list2.unique();
//list2를 list1에 병합한다.
list1.merge(list2);