C++ STL에서 벡터는 배열과 흡사하여 사용 빈도수가 높은 컨테이너중 하나이며 크기가 동적으로 변하는 배열이다.

vector

벡터는, 힙 메모리 공간에 생성되는 동적 할당되는 가변배열이다.

기본의 배열보다 효율적인 메모리관리가 가능하다. 

벡터의경우 선언해주었던 메모리의 크기가 꽉찼다면 메모리를 증설한다.

 

벡터의 메모리 할당방식의경우 실제 사용데이터수와 여유분을 포함한 개수로 되어있다.

하지만 메모리가 꽉찰경우 벡터의 메모리의 크기가 1.5배씩 증가하여 메모리크기가 크면클수록 증가하는 메모리가 더욱커진다.

또한 list 와 달리 원소를 추가하는것이아닌 ,

1.5배 증가된 배열을 생성한후 기존에 있던 배열에 있는 데이터를 복사를 하면서 늘려간다

계속 크기가 증가하면 복사비용이 들게된다. 이러한 복사비용을 줄이기위해서는 처음부터 여유있게 생성하는것이 중요할것같다. 

 

벡터 사용법

 

벡터를 사용하려면 vector 헤더파일을 include 해주면된다.

#include<vector>

 

vector 선언문이다

int main()
{
// vector int형, string형, float형 따로 선언
	
    std::vector<int> vectorInt;
    
    std::vector<std::string> vectorString;
    
    std::vector<float> vectorFloat;
    
    return 0;
}

 

vector 데이터를 넣는 방식이다.

생성한 벡터에 데이터를 넣으러면 push_back(데이터); 를 사용하여 데이터를 저장한다.

vectorint.push_back(10);
vectorint.push_back(20);
vectorint.push_back(30);

vectorString.push_back("10");
vectorString.Push_back("20");
vectorString.Push_back("30");

vectorFloat.push_back(10.0f);
vectorFloat.push_back(20.0f);
vectorFloat.push_back(30.0f);

 

vector에 잘 입력되었는지 출력을 해보자

#include <iostream>
#include <vector>
#include <string>
int main()
{
    std::vector<int> vectorInt;
    vectorInt.push_back(10);
    vectorInt.push_back(20);
    vectorInt.push_back(30);    

    std::vector<std::string> vectorString;
    vectorString.push_back("10");
    vectorString.push_back("20");
    vectorString.push_back("30");    

    std::vector<float> vectorFloat;
    vectorFloat.push_back(10.0f);
    vectorFloat.push_back(20.0f);
    vectorFloat.push_back(30.0f);
    
    for (int index = 0; index < 3; index++)
    {
        std::cout << vectorInt[index] << "\t";
        std::cout << vectorString[index] << "\t";
        std::cout << vectorFloat[index] << std::endl;
    }    
    return 0;
}

'개발 > c++' 카테고리의 다른 글

C++ STL 소개  (0) 2022.08.02

+ Recent posts