[C++] C++ STL, 벡터 (Vector) 예제
본문 바로가기

응용 프로그램 개발/C++, MFC, Windows

[C++] C++ STL, 벡터 (Vector) 예제

728x90
반응형

STL 이란,

C++에서 제공하는 표준 템플릿 라이브러리(Standard Template Library)로

자료구조, 알고리즘 등을 편하게 사용할 수 있도록 해주는 라이브러리이다.

 

STL 은 크게 container, iterator, algorithm 으로 구성되는데

Container는 순차 컨테이너(sequence container), 연관 컨테이너(associative container)가 있다.

 

Sequence Container중 대표적인 것이 바로 Vector이다.

다음 예제는 Vector에서 가장 많이 사용되는 함수들이다.

 

#include <vector>

// 구조체: 사용자 정의 자료형
typedef struct DATA
{
	CTime time;
    double fVal1;
    double fVal2;
    
    DATA()
    {
    	Init();
    }
    
    void Init()
    {
    	fVal1 = 0;
        fVal2 = 0;
    }
    
    void Set(v1, v2)
    {
    	fVal1 = v1;
        fVal2 = v2;
    }
    
}DATA;

// 벡터 선언 및 초기화
vector<DATA> vec1;
vec1.clear();

// 벡터에 들어갈 변수 생성
DATA data;
data.Set(0.1, 0.11);

// 벡터에 삽입
vec1.push_back(data);

// 벡터의 사이즈 반환
int n = vec1.size();

// 벡터에 저장되어있는 모든 값을 차례로 반환
for(int i=0; i<vec1.size(); i++)
{
	data = vec1[i];
}

 

주의해야할 점은 벡터는 스택에 쌓이기 때문에

사용 후 반드시 메모리를 해제해야한다는 점이다. 

 

// 초기화
vec1.clear();

// 메모리 해제
std::vector<DATA>().swap(vec1);
728x90
반응형