정적 double Temp_data [TABLE_SIZE];
사용자 입력에 따라 배열의 크기를 변경하고 싶습니다. 이것이 가능합니까? 도와주세요. 감사합니다. .
정적 double Temp_data [TABLE_SIZE];
사용자 입력에 따라 배열의 크기를 변경하고 싶습니다. 이것이 가능합니까? 도와주세요. 감사합니다. .
번호 당신은 아마 그런 다음 당신은 당신이 맞는 볼 크기를 설정하기 위해 resize()
멤버 함수를 사용할 수 있습니다 std::vector<double> Temp_data;
를 사용하고 싶습니다.
편집 : 분명히 분명히 할 수 있다면 new
을 직접 사용하지 않으려합니다 (이 경우 매우 쉽게 할 수 있습니다). new
의 직접 사용은 꽤 많은 유형의 버그의 지속적인 출처입니다. std::vector
은 new
으로 해결하기 어려운 몇 가지 모서리 케이스를 처리하고 범위를 벗어나면 데이터가 정리되도록합니다.
이전에 말씀 드린대로 여기에서 반복하겠습니다. at 한 번, 당신은 거의 선택의 여지가 있지만 new
을 사용하는 코드를 작성하십시오. 이제 선택의 여지가 있습니다. 운동을해야합니다. 현대적인 컴파일러와 표준 라이브러리가 주어지면 new
으로 배열을 할당 할 이유가 거의 없습니다.
동적 메모리 할당을 사용하십시오.
int size;
cin>>size
int *ptr = new int[size];
피할 수없는 경우에는 그렇지 않습니다. –
벡터보다 배열을 더 많이 제어 할 수 있습니다. –
어떤 컨트롤이 될까요? –
T * pData의
pData의 새로운 T = [NUM_ELEMENTS];
기본적으로 new 연산자를 사용합니다. 모든 C++ 레퍼런스에서 new에 대한 자세한 내용을 읽어보십시오.
하지만 왜 벡터 크기를 지정해야합니까? –
@Rohit : 그렇지 않습니다. 빈'vector'로 시작하고'push_back'을 사용하여 원하는만큼 항목을 추가 할 수 있습니다 (물론 최대 한도까지). 그러나 사용자가 크기를 제공하면'resize'를 사용하여 그 크기로 만들 수 있습니다. –
감사합니다. @JerryCoffin. 하지만 CArray 나 Arrays 중 하나를 사용하고 싶습니다. – gishara