소프트웨어/C++

[2005년 중간 7번] 벡터 자료형 정렬 및 처리 - STL vector

카켈 2007. 3. 7. 23:49





목적

  - STL 를 이해 하고 활용한다.

문제


코드




해설

  + 첫번째 풀이
  - 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() 는 그 벡터의 마지막 위치를 가리킵니다. 포인터로 =! 조건을 사용하여 끝까지 접근할수 있게 합니다.


참고
  - 처음 나온 문제 입니다.
  - http://www.msoe.edu/eecs/ce/courseinfo/stl/find.htm : STL find 함수
  - http://www.msoe.edu/eecs/ce/courseinfo/stl/sort.htm : STL sort 알고리듬(함수)
  - http://www.cplusplus.com/reference/stl/vector/ : vector STL