vecOut = find(vecIn); cout << "가장 작은 값 : " << vecOut[2] << endl; cout << "첫 번째로 큰 값 : " << vecOut[0] << endl; cout << "두 번째로 큰 값 : " << vecOut[1] << endl;
return 0; }
해설
+ 첫번째 풀이 - vector STL 자료형은 <vector> 를 include 함으로써 선언할수 있습니다. vector STL 클래스에서 제공하는 맴버 함수는 여러가지가 있습니다. - sort 함수는 STL 자료를 정렬 합니다. <algorithm> 에서 선언해서 쓸수 있습니다.
- find 함수는 STL 자료를 검색하여 해당 위치의 주소를 리턴하는 기능을 가집니다. 마찬가지로<algorithm> 에서 선언해서 쓸수 있습니다.
- begin() 맴버함수는 해당 자료의 시작부분의 주소를 반환합니다. 마찬가지로 end() 맴버함수는 자료의 끝을 반환하는데 중요한 것은 마지막 자료가 아니라 자료의 끝 주소를 가리킵니다. 따라서 -1 을 하여 마지막 값을 얻을수 있습니다. - iterator 맴버함수는 그 자료를 가리키는 일종의 포인터와 같습니다. dereference(역참조)를 할수 있습니다.
+ 두번째 풀이 - 두번째 프로그램은 동적 할당으로 double 형 배열을 받아서 자료를 입력하고 포인터로 접근하여 원하는 값을 추출하는 내용입니다. typedef 로 double 을 vector 로도 쓸수 있게 만들었기 때문에 동일하다고 보시면 됩니다.
- STL 의 존재를 모르고 코드를 짠 결과 입니다. - 동적 할당은 이전에 많이 풀어 봐서 그렇게 생소하지 않을 것입니다.
+ 세번째 풀이 - find 함수를 직접 정의해서 사용했습니다. - 내부 함수에서 임의의 벡터 STL 을 생성후 거기다가 결과값을 넣고 return 하면 됩니다. 리턴형이 vector<double> 이기 때문에 결과값을 일괄적으로 받아서 할당 받을수 있습니다. - aVec.end() 는 그 벡터의 마지막 위치를 가리킵니다. 포인터로 =! 조건을 사용하여 끝까지 접근할수 있게 합니다.