void merge(vector<Flight>& data, int low, int high, int mid, string criteria)
{
int i, j, k, temp[high - low + 1];
...
오류는 "매개 변수"high "(선 100에 선언 됨)의 값을 상수로 사용할 수 없습니다."라는 오류가 발생합니다. 나는 온라인으로이 질문에 대한 적절한 답을 찾지 못했다.매개 변수의 값을 상수로 사용할 수 없습니다.
void merge(vector<Flight>& data, int low, int high, int mid, string criteria)
{
int i, j, k, temp[high - low + 1];
...
오류는 "매개 변수"high "(선 100에 선언 됨)의 값을 상수로 사용할 수 없습니다."라는 오류가 발생합니다. 나는 온라인으로이 질문에 대한 적절한 답을 찾지 못했다.매개 변수의 값을 상수로 사용할 수 없습니다.
high - low + 1
은 C++에서 의 컴파일 시간 평가 가능한 상수 표현이되어야합니다. (C++은 가변 길이 배열을 지원하지 않습니다.)
그리고 컴파일러는 진단을 내립니다.
간단한 해결책은 temp
의 유형으로 std::vector<int>
을 사용하는 것입니다.
은 다음과 같습니다 : '벡터
거의 그렇지만 포인터 유형을 삭제하십시오. 필요가 없습니다. – Bathsheba
포인터 유형을 삭제하면 "std :: vector
선언에서 배열 길이로 '하이'를 사용하려고합니다. 컴파일러가 알려주 듯이, 그것은 불가능합니다. – user0042