반응형
#include "Algorithm.h"
namespace samples
{
namespace Alogorithm
{
template <typename Input, typename T>
Input* Algorithm::Find(Input* first, Input* last, const T& value)
{
while (first != last)
{
if (*first == value)
{
return first;
}
++first;
}
return last;
}
}
}
자료형이 2개 들어오며, 처음과 끝, 찾을 값을 파라미터로 받습니다.
반복문을 통해, 값이 같을 떄까지 반복합니다. 찾는다면 현재의 위치 포인터를 반환합니다.
만약 같은 값이 없다면, 마지막 위치 포인터를 반환합니다.
#include <iostream>
#include <vector>
#include "Algorithm.h"
#include "FindFunctionExample.h"
using namespace std;
namespace samples
{
void FindFunctionExample()
{
const int ARRAY_SIZE = 10;
int arr[ARRAY_SIZE] = { 10, 20, 13, 52, 32, 67, 89, 15, 46,3 };
const int* ptr = Algorithm::Find(arr, arr + ARRAY_SIZE, 67);
cout << *ptr;
}
}
구현한 함수는 위와 같이 활용 가능합니다.
C++ 강좌에서 좋은 코드로 공유받았습니다.
해당 예제를 통해, 평소에 활용하고 있는 STL 구현부들이 어떠한 방식으로 구현되어 있는지 조금이나마 알 수 있는 기회가 되었습니다.
반응형
'SW > C++' 카테고리의 다른 글
C++ : auto : 포인트 참조 및 받기 : 사용법, 주의점 (0) | 2020.04.03 |
---|---|
C++ : STL 알고리즘 참고 사이트 : C++03과 C++11 이후의 차이점 (0) | 2020.04.02 |
C++ : STL 알고리즘 : 종류, 예제, copy() 사용 방법 (0) | 2020.03.31 |
C++ : condition_variable::wait() : 사용법, 주의사항, 예제, 활용 방법 (0) | 2020.03.30 |
C++ : condition_variable, unique_lock : 개념, 정의, 활용 방법 (0) | 2020.03.29 |