2017-04-10 4 views
0

를 초기화하는 방법 : 이니셜 라이저 목록과 함께내가 사용하는 벡터를 사용하는 경우 벡터

std::vector<class> obj(size); 

을 그리고 :

std::vector<class> obj; 
MyClass::MyClass():obj(size) 

나는 "OBJ (크기)"를 를 입력하고 싶었다면 이니셜 라이저 목록 밖에서 구문은 무엇입니까? (예를 들어, 별도의 함수 내에서 만들기)

+0

단순히'obj.resize (size)'를 사용하십시오. 'std :: vector'는 ['resize'] (http://en.cppreference.com/w/cpp/container/vector/resize) 메쏘드를 가지고 있습니다 – WhiZTiM

+0

당신의 제목은 초기화를 요구하지만 당신의 질문은 초기화. – chris

답변

1

벡터는 구성 될 때 기본 크기로 초기화되므로 resize이되어야합니다. 다음과 같은 코드를 사용할 수 있습니다 :이 작업은 비용이 될 수 있음을 명심

obj.resize(size); 

을, 그래서 너무 자주 사용하지 마십시오. 벡터에 저장할 수있는 것보다 많은 요소를 벡터에 추가하면 자동으로 크기가 조정됩니다.

자세한 내용은 벡터 문서 here을 참조하십시오.

관련 문제