Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C++
- 람다
- 람다사용정렬
- 정렬알고리즘
- 프로그래머스
- 언리얼가비지컬렉터
- 언리얼엔진구조체
- UELOG
- 애셋로드
- 데이터애셋
- UE_LOG
- 선택정렬
- 크리티컬섹션
- 자료구조
- 약참조
- 강참조
- 델리게이트
- enumasByue
- 알고리즘
- stl
- 스마트포인터
- C++최적화
- unorder_map
- dataasset
- BFS
- UE4 커스텀로그
- UML관련
- map
- 정렬
- moreeffectiveC++
Archives
- Today
- Total
기억을 위한 기록들
[CPP] <algorithm> 헤더에서 유용한 함수 본문
코딩테스트들을 반복해서 해보다가 자주 사용해서 유용한 함수들을 모아봤다.
더 많이 있기도 하지만 최대한 '자주' 사용한것들을 모아봤고, 중간 중간 추가 해주는 글이다.
- 각 함수들이 만능은 아니다. 사용 한다고 무조건 장점만 있는것도 아니다.
- 더 나은 방법이 있을수도 있다.
- std::reverse - 함수 주어진 배열을 뒤집어 준다.
#include <iostream>
#include <algorithm> // std::reverse
int main() {
const int size = 5;
int myArray[size] = {1, 2, 3, 4, 5};
// 배열 뒤집기
std::reverse(myArray, myArray + size);
// 뒤집힌 배열 출력
std::cout << "Reversed Array: ";
for (int i = 0; i < size; i++) {
std::cout << myArray[i] << " ";
}
return 0;
}
- std::sort - 요소들을 정렬해준다.
#include <algorithm>
#include <vector>
int main() {
std::vector<int> myVector = {4, 2, 5, 1, 3};
std::sort(myVector.begin(), myVector.end());
// 정렬된 벡터 출력: 1 2 3 4 5
for (int num : myVector) {
std::cout << num << " ";
}
return 0;
}
- std::find - 요소를 찾아서 해당 위치 반환
#include <algorithm>
#include <vector>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
auto it = std::find(myVector.begin(), myVector.end(), 3);
if (it != myVector.end()) {
std::cout << "Element found at position: " << std::distance(myVector.begin(), it) << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
return 0;
}
- std::find - 요소를 특정 조건으로 찾아서 해당 위치 반환
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
auto it = std::find_if(myVector.begin(), myVector.end(), [](int x) { return x % 2 == 0; });
if (it != myVector.end()) {
std::cout << "First even element found: " << *it << std::endl;
} else {
std::cout << "No even elements found" << std::endl;
}
return 0;
}
- std::min / std::max - 최소값 최대값을 찾아준다.
#include <algorithm>
#include <iostream>
int main() {
int a = 5, b = 3;
int minValue = std::min(a, b);
int maxValue = std::max(a, b);
std::cout << "Min: " << minValue << std::endl; // 출력: 3
std::cout << "Max: " << maxValue << std::endl; // 출력: 5
return 0;
}
- std::count - 특정 값의 갯수를 세어준다.
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 2, 3, 2, 4, 5};
int count = std::count(myVector.begin(), myVector.end(), 2);
std::cout << "Number of 2s: " << count << std::endl; // 출력: 3
return 0;
}
- std::count_if - 특정 값의 조건으로 갯수를 세어준다.
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
int count = std::count_if(myVector.begin(), myVector.end(), [](int x) { return x % 2 == 0; });
std::cout << "Number of even elements: " << count << std::endl;
return 0;
}
- std::for_each - 범위의 요소들에 대해 특정 동작을 수행
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
std::for_each(myVector.begin(), myVector.end(), [](int& x) { x *= 2; });
// 모든 요소를 2배로 변경한 벡터 출력: 2 4 6 8 10
for (int num : myVector) {
std::cout << num << " ";
}
return 0;
}
- std::accumulate - 범위의 값을 합해준다.
#include <algorithm>
#include <numeric> // std::accumulate
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
int sum = std::accumulate(myVector.begin(), myVector.end(), 0);
std::cout << "Sum of elements: " << sum << std::endl;
return 0;
}
- std::unique - 중복된 요소를 제거한다( 정렬된 벡터여야 한다)
#include <algorithm>
#include <vector>
#include <iostream>
int main() {
std::vector<int> myVector = {1, 2, 2, 3, 3, 4, 5};
std::sort(myVector.begin(), myVector.end());
auto last = std::unique(myVector.begin(), myVector.end());
myVector.erase(last, myVector.end());
// 중복이 제거된 벡터 출력: 1 2 3 4 5
for (int num : myVector) {
std::cout << num << " ";
}
return 0;
}
'C & CPP' 카테고리의 다른 글
[CPP] C++ 정규 표현식 (regex / regular expression)에 관하여 (0) | 2024.03.08 |
---|---|
[CPP] std::string과 std::string_view (1) | 2023.12.05 |
[CPP] std::min_element 최소값/ std::max_element 최대값 구하기 (1) | 2023.11.26 |
비트연산 관련 (0) | 2023.07.25 |
[C & CPP] 람다함수의 메모리 할당에 대하여.. (0) | 2023.04.05 |