C++ 공통 함수 요약#include<알고리즘>

목차

머리말

1. 비수정 시퀀스 연산(12)

2. 시퀀스 작업 수정(27)

3. 시퀀스 정렬 및 관련 작업(27)

요약하다


머리말

#include <알고리즘>은 C++ 표준 템플릿 라이브러리(STL)에서 가장 중요한 헤더 파일 중 하나이며, 반복자를 기반으로 하는 많은 비구성원 템플릿 함수를 제공합니다.

구체적으로 수정되지 않은 시퀀스 작업, 수정된 시퀀스 작업, 파티션 작업, 정렬 작업, 이진 검색 작업, 병합 작업, 힙 작업, 최대값 및 최소값 작업 및 기타 작업이 포함됩니다.

이 글은 라이브러리에 있는 함수의 사용법과 자주 사용하는 함수에 대한 설명을 자세하게 기록하고 있습니다.


1. 비수정 시퀀스 연산( 12 )

1.for_each()

시퀀스의 각 요소에 대해 연산을 수행합니다.

for_each(v1.begin(),v1.end(),add);//将v1执行add方法

2.찾기()

시퀀스에서 값의 첫 번째 항목을 찾습니다. 기본 요소에 대해 같음 연산자를 사용하여 범위의 요소를 입력 값과 비교합니다. 일치하면 검색을 종료하고 요소에 대한 InputIterator를 반환합니다.

find(v1.begin(),v1.end(),value);//在v1中找到value的索引值

3.find_if()

술어를 만족하는 시퀀스의 첫 번째 요소 찾기

4.find_end()

시퀀스에서 하위 시퀀스의 마지막 발생 위치 찾기

5.find_first_of()

시퀀스의 지정된 값 집합에서 값의 첫 번째 항목을 찾습니다.

6.adjacent_find()

시퀀스에서 인접한 값 쌍 찾기

7.카운트()

시퀀스에서 값의 발생 횟수 계산

count(v1.begin(),v1.end(),value);//统计v1中value出现的次数

8.count_if()

시퀀스에서 술어에 대한 일치 수를 계산합니다.

9.불일치()

비교: 서로 다른 두 시퀀스의 첫 번째 요소 찾기

10.같음()

두 시퀀스의 해당 요소가 동일한 경우 참

11.검색()

시퀀스에서 하위 시퀀스의 첫 번째 발생 위치 찾기

12.검색_n()

시퀀스에서 n개의 연속된 값 찾기

2. 시퀀스 작업 수정( 27 )

1.복사()

시퀀스의 첫 번째 요소에서 복사

copy (v1.begin(),v1.end(),v2.begin());//v1复制给v2

2.copy_backward()

시퀀스의 마지막 요소에서 복사

3.스왑()

두 요소 교환

swap(a,b);//交换ab

4.swap_ranges()

지정된 범위의 요소를 교체합니다.

5.iter_swap()

반복자가 가리키는 두 요소를 바꿉니다.

6.변환()

지정된 범위의 각 요소에 연산을 적용합니다.

transform(v1.begin(),v1.end(),v2.begin(),add);//将v1复制到v2同时先执行add方法 将其改变后放入v2容器中

7.대체()

일부 값을 주어진 값으로 대체

replace(v1.begin(),v1.end(),old_value,new_value);//在v1中找old_value,并用new_value替换

8.replace_if()

술어를 만족하는 일부 요소를 대체하십시오.

9.replace_copy()

시퀀스를 복사할 때 요소를 주어진 값으로 바꿉니다.

10.replace_copy_if()

시퀀스를 복사할 때 술어를 만족하는 요소 교체

11.채우기()

모든 요소를 ​​주어진 값으로 바꿉니다.

fill(v1.begin(),v1.end(),value);//遍历v1,value替换所遍历的值

12.fill_n()

처음 n개의 요소를 주어진 값으로 바꿉니다.

13.생성()

모든 요소를 ​​작업 결과로 바꿉니다.

14.generate_n()

처음 n개의 요소를 작업 결과로 바꿉니다.

15.제거()

주어진 값을 가진 요소를 제거합니다.

remove(v1.begin(),v1.end(),value);//删除v1中所有值为value的数据

16.remove_if()

술어를 만족시키는 요소 제거

17.remove_copy()

시퀀스를 복사할 때 주어진 값을 가진 요소를 제거합니다.

18.remove_copy_if()

시퀀스를 복사할 때 술어를 만족하는 요소 제거

19. 고유()

인접한 중복 요소 제거

vector<int> ModuleArr;
sort(ModuleArr.begin(), ModuleArr.end());//排序
ModuleArr.erase(unique(ModuleArr.begin(), ModuleArr.end()), ModuleArr.end());//去重

20.unique_copy()

시퀀스를 복사할 때 인접한 중복 요소 제거

21.반전()

요소의 순서를 반대로

reserve(v1.begin(),v1.end());//反转v1次序

22.reverse_copy()

시퀀스를 복사할 때 요소의 순서를 반대로 합니다.

23.회전()

요소 순환

24.rotate_copy()

시퀀스 복사 시 요소 순환

25.random_shuffle()

무작위: 균일한 분포를 사용하여 요소를 무작위로 이동합니다.

26.파티션()

파티션: 술어를 만족하는 모든 요소를 ​​앞에 배치

27.stable_partition()

술어를 만족시키는 요소를 앞에 두고 원래의 순서를 유지한다.

3. 시퀀스 정렬 및 관련 작업( 27 )

1.정렬()

평균 효율이 좋은 정렬

sort(v1.begin(), v1.end());//v1排序

2.stable_sort()

정렬: 동일한 요소의 원래 순서 유지

3.partial_sort()

시퀀스의 이전 부분 정렬

4.partial_sort_copy()

복사하는 동안 시퀀스의 이전 부분 정렬

5.nth_element()

n번째 요소 각 n번째 요소를 올바른 위치에 배치

6.lower_bound()

값보다 크거나 같은 값의 첫 번째 항목 찾기

7.upper_bound()

특정 값보다 큰 첫 번째 항목 찾기

8.equal_range()

주어진 값을 삽입할 수 있는 가장 큰 범위를 찾습니다(순서를 끊지 않고).

9.binary_search()

주어진 요소가 순서대로 존재하는지 확인

10.병합()

두 개의 정렬된 시퀀스 병합

merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());//合并v1和v2到v3

11.inplace_merge()

두 개의 연속 정렬 시퀀스 병합

12.포함()

순서가 있는 구조에 대한 연산 설정: 하나의 시퀀스가 ​​다른 시퀀스의 하위 시퀀스인 경우 참

13.set_union()

두 세트의 정렬된 합집합을 구성합니다.

14.set_intersection()

두 집합의 정렬된 교집합을 생성합니다.

15.set_difference()

두 세트의 순서차를 구성합니다.

16.set_symmetric_difference()

두 집합의 정렬된 대칭 차(합집합-교차)를 구성합니다.

17.push_heap()

힙에 요소 추가

18.팝_힙()

힙에서 요소 팝

19.make_힙()

시퀀스에서 힙을 구성합니다.

20.sort_heap()

힙 정렬

21분()

두 값 중 작은 값

min(a,b);

22.max()

두 값 중 더 큰 값

max(a,b);

23.min_element()

시퀀스에서 가장 작은 요소

max_element(first,end,cmp);//第三个参数cmp可写可不写,max_element()和min_element() 默认是从小到大排列

24.max_element()

시퀀스에서 가장 큰 요소

min_element(first,end,cmp)

25.사전식_비교()

두 개의 시퀀스는 사전순으로 첫 번째 순서입니다.

26.next_permutation()

사전순으로 다음

27.prev_permutation()

사전 순으로 선행


요약하다

이 문서에서는 알고리즘 라이브러리의 템플릿 함수 메서드를 요약하고 일반적으로 사용되는 함수 메서드의 사용법을 자세히 소개합니다.

추천

출처blog.csdn.net/Gary_ghw/article/details/131659203