2012-04-04 9 views

답변

8

번호 당신은 아마 그런 다음 당신은 당신이 맞는 볼 크기를 설정하기 위해 resize() 멤버 함수를 사용할 수 있습니다 std::vector<double> Temp_data;

를 사용하고 싶습니다.

편집 : 분명히 분명히 할 수 있다면 new을 직접 사용하지 않으려합니다 (이 경우 매우 쉽게 할 수 있습니다). new의 직접 사용은 꽤 많은 유형의 버그의 지속적인 출처입니다. std::vectornew으로 해결하기 어려운 몇 가지 모서리 케이스를 처리하고 범위를 벗어나면 데이터가 정리되도록합니다.

이전에 말씀 드린대로 여기에서 반복하겠습니다. at 한 번, 당신은 거의 선택의 여지가 있지만 new을 사용하는 코드를 작성하십시오. 이제 선택의 여지가 있습니다. 운동을해야합니다. 현대적인 컴파일러와 표준 라이브러리가 주어지면 new으로 배열을 할당 할 이유가 거의 없습니다.

+0

하지만 왜 벡터 크기를 지정해야합니까? –

+0

@Rohit : 그렇지 않습니다. 빈'vector'로 시작하고'push_back'을 사용하여 원하는만큼 항목을 추가 할 수 있습니다 (물론 최대 한도까지). 그러나 사용자가 크기를 제공하면'resize'를 사용하여 그 크기로 만들 수 있습니다. –

+0

감사합니다. @JerryCoffin. 하지만 CArray 나 Arrays 중 하나를 사용하고 싶습니다. – gishara

2

동적 메모리 할당을 사용하십시오.

int size; 
cin>>size 
int *ptr = new int[size]; 

http://www.cplusplus.com/doc/tutorial/dynamic/

+1

피할 수없는 경우에는 그렇지 않습니다. –

+0

벡터보다 배열을 더 많이 제어 할 수 있습니다. –

+1

어떤 컨트롤이 될까요? –

2

T * pData의

pData의 새로운 T = [NUM_ELEMENTS];

기본적으로 new 연산자를 사용합니다. 모든 C++ 레퍼런스에서 new에 대한 자세한 내용을 읽어보십시오.

관련 문제