목적
  - 동적 할당에 대해 이해하고 입력을 받아서 자료를 추가 및 처리 할줄 안다.

문제
사용자 삽입 이미지

코드

#include <iostream>
#include <cstring>
#include <vector>

using namespace std;

int main(void)
{
 vector<double> stlVector;
 int i = 0;
 char *sName, *sId;
 char sIn[255] = {0};
 double dIn, dTotal;
 dIn = dTotal = 0.0;
 sName = sId = NULL;

 cout << "학번 : ";
 cin.getline(sIn,255);
 sId = new char[strlen(sIn) + 1];
 strcpy(sId, sIn);

 cout << "이름 : ";
 cin.getline(sIn,255);
 sName = new char[strlen(sIn) + 1];
 strcpy(sName, sIn);

 cout << "네 과목의 성적 : ";
 for(i = 0; i <= 3; i++)
 {
  cin >> dIn;
  stlVector.push_back(dIn);
  dTotal += stlVector[i];

 }
 
 cout << sId << ' ' << sName << " 의 평균 점수는 " << dTotal / i << " 입니다." << endl;
 delete sName, sId;

 return 0;
}

해설
   - vector STL 자료형은 이전 문제에서 자세히 다루었습니다. 참고 하시기 바랍니다.
  - 나머지 부분은 크게 어렵지 않습니다.
  - 문자열 포인터를 생성후 동적으로 입력 받은 글자의 길이만큼 새로 생성하여 추가하는 방식을 썼습니다. 생성 및 삭제에 new / delete 명령어가 쓰입니다.

참고
  - vector STL 다루었던 문제

Posted by 카켈





목적

  - 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
Posted by 카켈
이전페이지 1 다음페이지