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
인접 중복 요소 삭제
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 원자로 작동먼저 전연 두 갈래 나무의 정의를 살펴보자. 만약에 두 갈래 나무의 깊이를 h로 설정하면 h층을 제외한 다른 각 층(1~h-1)의 결점은 모두 최대 개수에 달하고 h층의 모든 결점은 연속적으로 맨 왼쪽에 집중된다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.