배열과 벡터의 교집합을 가져 오려고합니다. 나는 cplusplus.com이 예제를 제공하는 방법이기 때문에 두 벡터로 만들기로 결정했습니다. 여기디버그 어설 션 오류 - 배열 반복자가 호환되지 않습니다.
내 코드입니다 :
getNumbers()
함수가 배열을 반환은
이
은 내가 오류 메시지입니다.편집 여기
는 getNumbers()
기능입니다 - 그냥 같은 반환 형식의 속성을 반환
배열과 벡터의 교집합을 가져 오려고합니다. 나는 cplusplus.com이 예제를 제공하는 방법이기 때문에 두 벡터로 만들기로 결정했습니다. 여기디버그 어설 션 오류 - 배열 반복자가 호환되지 않습니다.
내 코드입니다 :
getNumbers()
함수가 배열을 반환은
이
은 내가 오류 메시지입니다.편집 여기
는 getNumbers()
기능입니다 - 그냥 같은 반환 형식의 속성을 반환
이 주장은 일반적으로 반복자는 시작과로 제공한다는 것을 의미 범위의 끝 다른 컬렉션을 참조하십시오.
getNumbers()
함수는 배열을 반환합니다.
getNumbers()
참조에 의해 배열을 반환하고, 또한 동일한 배열에 대한 참조를 반환하지 않는 한,이 초기화는 무효이다
std::vector<unsigned int> ticketNumbers(getNumbers().begin(), getNumbers().end());
, getNumbers()
반복 참조를 반환해야 같은 배열에. getNumbers
은 값으로 배열을 반환하기 때문에 복사본을 반환합니다.
const
참조를 반환하기 위해
getNumbers()
기능을 변경 수, 또는이
std::array<unsigned int, TICKET_BALL_COUNT> tempNumbers= getNumbers();
std::vector<unsigned int> ticketNumbers(tempNumbers.begin(), tempNumbers.end());
처럼, 임시 변수 tempNumbers
에 결과를 저장,이 라인, 첫 번째 호출 getNumbers()
를 해결하려면 :
const std::array<unsigned int, TICKET_BALL_COUNT>& Ticket::getNumbers() const {
return _numbers;
}
고마워요! 이것은 완벽하게 작동합니다 –
@AdamCarter 환영합니다! 두 번째 대안을 살펴보면 작동 할 수도 있고 복사하는 양도 줄일 수 있습니다. – dasblinkenlight
감사합니다. 감사합니다. 나는 C++을 처음 사용하고 const 키워드를 함수 이름의 양쪽에 두는 것이 이상한가? 이 표준 관행인가? –
'getNumbers'를 볼 수 있습니까? 숫자 사본을 반환하면 오류를 설명합니다. – templatetypedef
님이'getNumbers'를 추가했습니다. –