C++ using Vector

Languages/C,C++ 2009. 5. 9. 19:10

요즘 C# 그리고 Silverlight 에 빠지다 보니 예전에 공부했던 내용들이 가물 가물 하더라구요 그리하여 이번에 차근 차근 보기로 했습니다. 초등학교때 썼던 일기장을 보듯?ㅋ

뜬금없이 Vector 가 나왔습니다. 요것은 Standard Library 에 있는 자료 구조중 하나이며 여러 종류들중 제가 가증 좋아하는 것입니다.

 

우선 vector 를 사용하기 위해서는 아래와 같이 해주셔야 합니다.

이제 본격적으로 사용 예를 보겠습니다.

CD 관리 프로그램으로 설명을 드리겠습니다.

우선은 App , CD 두개의 Class 가 존재합니다.

다음은 Class App 내용입니다.

여기서 vector <CD*> *base; 를 선언하였습니다. < > 여기 사이에 자료형을 넣습니다(여기선 클래스) 이네요 . 그리고 포인터 변수를 선언하였습니다.

실행과 동시에 App 생성자로 들어오게 되며, 이곳에서는 vector 를 초기화 합니다. 그리고 Run(); 을 실행하여 매뉴를 선택할 수 있게 하였고 이곳에서는 삽입,삭제,찾기 등을 할 수 있는 기능을 하게 됩니다.

이제 vector의 중요한 기능들을 보겠습니다.

<삽입>

<전체 출력>

for 문을 순회 하게 되는데 maximum 은 base->size() 로 하였습니다. size()는 vector의 총 크기를 int 형으로 반환해줍니다. 그리고 base->begin()은 vector의 처음을 가르키는데 증가하면서 역참조하여 CD 를 반환해줍니다. 이렇게하여 출력이 간으하게 됩니다. 이런 순회구문을 이용하여 찾기도 가능합니다. strcmp 등을 이용하여 문장을 비교하여 출력해주면 됩니다.

<삭제>

 

전체 출력 결과에서 삭제할 번호를 선택하여 index 에 저장하고 삭제를 하는 과정입니다. index-1 해준 이유는 vector의 시작이 0 부터 시작하기 때문입니다. erase() 를통해 단순히 목록에서 삭제해주기전에 선택한 CD 실제로 메모리 해제를 하기위해 delete 를 사용하였습니다.

 

간단하게 vector에 대해서 알아 보았습니다. 옛기억 새록 새록 나네요^^

Posted by Dongkyu
,