그래서 테스트하려고 시도하는 코드 조각이 있습니다. 이 코드는 몇 가지 벡터 (구조체의 요소)가 특정 지점의 알려진 벡터와 동일하다는 것을 확인하지만 문제가 발생합니다. 나는 다음과 같이 알려진 벡터에브레이스 동봉 초기 목록? 벡터로 변환
assert((class1.getattr().getattr().getVec(key) == {4,3,2,2}))
를 벡터를 비교하려고 할 때 나는 다음과 같은 오류 얻을 :
는assertAll.cpp:105:82: error: could not convert ‘{4,3,2,2}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<int>’
은 어설의 LVAL는 코드의 나머지 부분이 모두 정확하고, 확실히 벡터이어야합니다. 나는 플래그로 컴파일 중이다. -std = C++ 11 -Wall -Wextra -pedantic -O g ++. 아무도이 문제를 해결하는 방법을 알고 있습니까? 괄호로 묶은 이니셜 라이저 목록을 벡터로 유형 변환하는 방법이 있습니까? 아니면이 방법을 사용하는 것이 더 좋습니까? 내가 비슷한 때 흥미롭게
벡터 요소를 요소별로 비교 한 다음 bool 값을 반환하는 작은 함수를 작성하여 assert를 사용하여 검사하거나 std :: equal을 사용할 수 있습니다. – learningToCode
문제는 cpp가 대괄호로 묶은 정보를 벡터로 인식하지 못하므로 std :: vector를 사용하는 함수가 작동하지 않는다는 것입니다. – Eric
우리의 첫 번째 생각은 비교 함수에 전달하는 것이었지만 입력 할 수 없기 때문에 두 번째 부분을 벡터으로 캐스팅했는데 분명히 작동하지 않았습니다. –
Eric