C++에서 STL list 상세 설명 및 간단 한 인 스 턴 스

3718 단어 STLlist
C++중 STL list 상세 설명
1.List:내부 실현 은 양 방향 링크 로 효율 적 인 삽입 과 삭 제 를 할 수 있 지만 무 작위 방문 을 할 수 없습니다.
2.예시 프로그램:

#include "stdafx.h" 
#include <iostream> 
#include <list> 
#include <iterator> 
#include <algorithm> 
using namespace std; 
const int num[5] = {1,3,2,4,5}; 
bool status(const int & value) 
{ 
 return value>6?true:false; 
} 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
 list<int> list1; 
 copy(num,num+5,back_insert_iterator<list<int>>(list1)); 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.sort(greater<int>());//5 4 3 2 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list<int>::iterator it = list1.begin(); 
 while (it != list1.end()) 
 { 
  (*it) += 2; 
  it++; 
 } 
 //7 6 5 4 3 
 list<int>::reverse_iterator re_it = list1.rbegin(); 
 cout<<"      : "; 
 while (re_it != list1.rend()) 
 { 
  cout<<*re_it<<" "; 
  re_it++; 
 } 
 cout<<endl; 
 list1.reverse();// 3 4 5 6 7 
 list1.push_back(8);//3 4 5 6 7 8 
 list1.pop_front();//4 5 6 7 8 
 list1.remove(6);//4 5 7 8 
 list1.remove_if(status);// 4 5 
 list1.resize(4);// 4 5 0 0 
 list1.resize(6,1);// 4 5 0 0 1 1 
 list1.unique();//4 5 0 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.clear(); 
 cout<<"  list1      :"<<list1.size()<<endl; 
 list1.push_back(7);//list1:7 
 list<int> list2(3,2);//2 2 2 
 list2.merge(list1,greater<int>());//list2: 7 2 2 2 
 list2.insert(++list2.begin(),3);//list2: 7 3 2 2 2 
 list2.swap(list1);//list1:7 3 2 2 2 list2:empty 
 list1.erase(++list1.begin(),list1.end());// 7 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 system("pause"); 
} 

실행 결과 그림:

3、List 방법 
리스트 멤버
설명 하 다.
constructor
구조 함수
destructor
분석 함수
operator=
할당 과부하 연산 자
assign
할당 값
front
첫 번 째 요소 의 인용 을 되 돌려 줍 니 다.
back
마지막 요소 의 인용 을 되 돌려 줍 니 다.
begin
첫 번 째 요소 의 iterator 를 되 돌려 줍 니 다.
end
마지막 요소 의 다음 위 치 를 되 돌려 주 는 iterator
rbegin
링크 의 마지막 요 소 를 되 돌려 준 후 포인터 reverseiterator
rend
링크 첫 번 째 요소 의 다음 위 치 를 되 돌려 주 는 reverseiterator
push_back
링크 끝 에 데 이 터 를 추가 합 니 다.
push_front
체인 헤더 에 데 이 터 를 추가 합 니 다.
pop_back
링크 끝 에 있 는 요 소 를 삭제 합 니 다.
pop_front
체인 헤더 의 요소 삭제
clear
모든 요소 삭제
erase
하나의 요소 나 한 지역 의 요 소 를 삭제 합 니 다(두 개의 과부하)
remove 
링크 에 일치 하 는 요 소 를 삭제 합 니 다(일치 하 는 요 소 는 모두 삭제 합 니 다)
remove_if
조건 이 만족 하 는 요 소 를 삭제 합 니 다(링크 를 한 번 옮 겨 다 니 며).매개 변 수 는 사용자 정의 반전 함수 입 니 다.
empty
링크 가 비어 있 는 지 판단 합 니 다.
max_size
반환 링크 최대 길이
size
링크 의 요소 개 수 를 되 돌려 줍 니 다.
resize
링크 길이 다시 정의(이중 로드 함수)
reverse
리 버스 링크
sort 
링크 정렬,기본 오름차 순
merge
두 개의 질서 있 는 링크 를 합 쳐 질서 있 게 합 니 다.
splice 
두 개의 링크 를 결합(세 개의 과부하 함수) 결합 후 두 번 째 링크 비우 기
insert
지정 한 위치 에 하나 이상 의 요 소 를 삽입 합 니 다(세 개의 과부하 함수)
swap
링크 두 개 교환(두 개 과부하)
unique 
인접 중복 요소 삭제 
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기