SW/C++

C++ : STL : find 알고리즘 구현 : 예제

얇은생각 2020. 4. 1. 07:30
반응형

C++ find 알고리즘 구현

 

#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 구현부들이 어떠한 방식으로 구현되어 있는지 조금이나마 알 수 있는 기회가 되었습니다.

반응형