stl 상용 알고리즘(Algorithms)소개(stl 정렬 알고리즘,비 변수 형 대기 열)
알고리즘 은 템 플 릿 함수 에 의 해 나타 납 니 다.이 함수 들 은 용기 류 의 구성원 함수 가 아니 라 독립 된 함수 입 니 다.STL 용기 에 도 사용 할 수 있 고 일반적인 C+배열 등에 도 사용 할 수 있 습 니 다.
헤더 파일:\#include
STL 의 일반적인 알고리즘 중 4 가지 기본 적 인 알고리즘 이 있 습 니 다.
1)변 서 형 대기 열 알고리즘:용기 안의 데 이 터 를 변경 할 수 있 습 니 다.2)비 변수 형 대기 열 알고리즘:용기 안의 데 이 터 를 처리 하고 그들 을 바 꾸 지 않 는 다.3)정렬 값 알고리즘:용기 의 값 을 정렬 하고 통합 하 는 알고리즘 을 포함 하고 이 진 검색 알고리즘 도 포함 합 니 다.4)유 니 버 설 수치 알고리즘:이 알고리즘 은 많 지 않 고 전문 분야 에서 유용 한 산술 작업 과 관련 되 며 헤드 파일
STL 의 알고리즘 은 STL 용기 만 을 겨냥 한 것 이 아니 라 일반 용기 에 도 적용 된다
//
#include <iostream>
#include <algorithm>
#include <iterator>
// ostream_iterator
using namespace std;
int main(void)
{ int arr0[6]= {1,12,3,2,1215,90};
int arr1[7];
int arr2[6]= {2,5,6,9,0,-56};
// aar arr1
copy(arr0,(arr0+6),arr1);
cout<<"arr0[6] copy to arr1[7],now arr1: "<<endl;
for(int i=0; i<7; i++)
cout<<" "<<arr1[i];
// ,
// arr
reverse(arr0,arr0+6);
cout<<"
"<<"arr reversed ,now arr:"<<endl;
//
copy(arr0,arr0+6,ostream_iterator<int>(cout, " "));
// arr0 arr2
swap_ranges(arr0,arr0+6,arr2);
cout<<"
"<<"arr0 swaped to arr2, and now arr0's content:"<<endl;
copy(arr0,arr0+6,ostream_iterator<int>(cout, " "));
cout<<"
"<<"arr2:"<<endl;
copy(arr2,arr2+6,ostream_iterator<int>(cout, " "));
return 0;
}
비 변화 형 대기 열 알고리즘(구성원 통계 계산,검색 일치)
//
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{ int a[10]= {12,31,5,2,23,121,0,89,34,66};
vector<int> v1(a,a+10);
vector<int>::iterator result1,result2; //result1 result2
result1=find(v1.begin(),v1.end(),2); // v1 2,result1 v1 2
result2=find(v1.begin(),v1.end(),8); // v1 8,result2 v1.end()
cout<<result1-v1.begin()<<endl; //3-0=3 4-1=3, 3
cout<<result2-v1.end()<<endl; //10-10=0;
int b[9]= {5,2,23,54,5,5,5,2,2};
cout<<"a[10]={12,31,5,2,23,121,0,89,34,66};
";
cout<<"b[9]={5,2,23,54,5,5,5,2,2};
";
vector<int> v2(a+2,a+8);
vector<int> v3(b,b+4);
result1=search(v1.begin(),v1.end(),v2.begin(),v2.end());
cout<<*result1<<endl;
// v1 v2,result1 v2 v1
result1=search(v1.begin(),v1.end(),v3.begin(),v3.end());
cout<<*(result1-1)<<endl;
// v1 v3,result v1.end(), v1 66
vector<int> v4(b,b+9);
int i=count(v4.begin(),v4.end(),5);
int j=count(v4.begin(),v4.end(),2);
cout<<"there are "<<i<<" members in v4 equel to 5"<<endl;
cout<<"there are "<<j<<" members in v4 equel to 2"<<endl;
// v4 5,2
return 0;
}
정렬 알고리즘이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 유용한 함수 모음정렬 정렬 기준 정하기 : 세번째 인자로 정의한 함수 특정 변수를 기준으로 정렬 : pair 이용 정렬 기준 두 개일 때 : 이중 pair 이용 문자열 처리 문자열 뒤집기 문자열에서 특정 문자 찾기 배열 자리 바꾸기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.