언어 자료구조 알고리즘/Escort 자료구조와 STL

[자료구조와 STL] 3. vector (배열)

언제나휴일 2016. 4. 18. 09:45
반응형

2. vector (배열)

 

 STL에서 제공하는 컨테이너 중에서 C++언어에서 제공하는 배열과 가장 흡사한 컨테이너는 vector입니다. vector 내부에는 원소 형식들을 연속적인 프로그램 메모리에 보관할 수 있는 물리적 공간을 가지고 있기 때문에 변수명과 인덱스 연산자를 통해 원하는 원소를 찾을 수 있습니다.

 

vector<int> arr(5);

for(int index = 0; index < 5; ++index)

{

         arr[index] = index+1;

}

 

 C++언어에서 제공되는 배열은 유효하지 않은 인덱스를 통해 접근하였을 때 프로그램이 터지지 않는 경우도 발생합니다. 이러면 개발 단계에서 빠르게 논리적 버그를 찾지 못하여 비용이 커지게 됩니다. 하지만 STL에서 제공하는 vector에서는 보관된 원소의 개수를 기억하는 멤버가 있어 유효한 범위를 벗어난 요소에 접근하면 예외가 발생하여 버그가 존재하는 것을 알 수 있습니다.

 

 vector에서는 인덱스 연산 이외에도 차례대로 자료를 보관하거나 특정 키순으로 보관할 수 있게 다양한 메서드들을 제공하고 있습니다. 실제 vector를 사용하는 개발자는 프로그램에서 관리할 데이터와 기능에 따라 사용방법을 결정하게 될 것입니다. 이 책에서는 특정 키를 갖는 요소가 vector의 약속된 인덱스에 보관하는 경우와 차례대로 보관, 특정 키순으로 보관하는 경우에 대해서 다룰 것입니다.

 

 이 책에서 STL을 다루는 것은 자료구조의 특징을 전달하고 범용적으로 사용되는 STL에서 제공되는 것들은 어떠한 구조로 되어있고 어떻게 사용하는지를 살펴보기 위해서입니다. 또한, STL에서 제공하는 것들과 비슷한 구조로 만들어 보는 과정을 통해 자료구조에 대한 이해와 구현 능력 및 STL 사용 능력을 키울 것입니다.


잘못된 인덱스 사용 시에 에러 메시지 창

[그림 1] 잘못된 인덱스 사용 시에 에러 메시지 창



[자료구조와 STL] 4. vector 인덱스 연산을 통해 사용하기

[자료구조와 STL] 5. vector 인데스 연산으로 사용하기 예제 코드

[자료구조와 STL] 6.vector에 자료를 차례대로 보관하기

[자료구조와 STL] 7.vector에 자료를 차례대로 보관하기 예제 코드

[자료구조와 STL] 8. 3 vector를 이용하여 특정 키 순으로 보관하기

[자료구조와 STL] 9.vector를 이용하여 특정 키 순으로 보관하기 예제 코드

[자료구조와 STL] 10. vector 만들기

[자료구조와 STL] 11. vector 만들기 소스 코드

[자료구조와 STL] 12. find , find_if 만들어보기


반응형