VC++ 2012에서이 라인 코드를 사용하여 arrayCosts라는 통합 행 배열을 정렬했습니다. 이 코드는이 버전에서 작동하지만 VC++ 6 버전에서는 작동하지 않습니다.VC++ 6에서 벡터를 사용하여 배열을 정렬하는 중 오류가 발생했습니다. VC++ 2012에서 오류가 없습니다.
vector< vector<float> > my_vector ;
for(const auto& row : arrayCosts) my_vector.push_back(vector<float>(begin(row), end(row))) ;
sort(begin(my_vector), end(my_vector),
[](const vector<float>& a, const vector<float>& b) { return a[1] < b[1] ; }) ;
VC++ 6의 오류는 다음과 같습니다.
e:\logistics\projects\10\10\source1.cpp(190) : error C2143: syntax error : missing ',' before ':'
e:\logistics\projects\10\10\source1.cpp(190) : error C2530: 'row' : references must be initialized
e:\logistics\projects\10\10\source1.cpp(190) : error C2059: syntax error : ':'
e:\logistics\projects\10\10\source1.cpp(191) : error C2065: 'begin' : undeclared identifier
e:\logistics\projects\10\10\source1.cpp(191) : error C2065: 'end' : undeclared identifier
e:\logistics\projects\10\10\source1.cpp(192) : error C2059: syntax error : '['
e:\logistics\projects\10\10\source1.cpp(192) : error C2143: syntax error : missing ')' before '{'
e:\logistics\projects\10\10\source1.cpp(192) : error C2143: syntax error : missing ';' before '{'
e:\logistics\projects\10\10\source1.cpp(192) : error C2065: 'a' : undeclared identifier
e:\logistics\projects\10\10\source1.cpp(192) : error C2109: subscript requires array or pointer type
e:\logistics\projects\10\10\source1.cpp(192) : error C2065: 'b' : undeclared identifier
e:\logistics\projects\10\10\source1.cpp(192) : error C2109: subscript requires array or pointer type
VC++ 6.0은 15 세 이상입니다. 'auto'(유형 유추 키워드로 사용) 및 범위 기반 for 루프와 같은 C++ 11 구문을 지원하지 않습니다. –
Dude - VC6?!?! CX11'for (const auto & row : arrayCosts) '루프가있는 1998 년경 컴파일러? VC6 Enterprise Edition을 구입하고 특별한 "사전 설정 스위치"로 컴파일하는 경우에만 작동합니다. – paulsm4
아마도 Microsoft에 버그 리포트를 제출해야합니까? –