2013-01-15 6 views
1

을 먼저 반환합니다.이 질문이 게시판 인 경우 미안하다고 말하고 싶습니다.부울 배열

게임 루프 내의 특정 객체를 검사 한 다음 부울 값을 반환하는 함수를 만드는 중입니다.이 함수가 true 또는 false로 돌아 오면 내 함수 내에서 총 5 회 실행됩니다. 함수에서 부울 값 5 개를 모두 반환 할 수 있는지 궁금합니다.

Bool funcName(obj obj[]) 
    { 
     for (int i = 0; i < 5; i++) 
     { 
      boolVal[i]=ChckFunc(obj[i]); 
     } 
     return boolVal[]; 
    } 

감사합니다 도움이

+0

가능한 중복 항목 : [/questions/4264304/howto-return-a-array-in-ac-method](hackpolicy/questions/4264304/howto-return-a-array-in-ac- 메서드) –

+0

@Aposperite : 가능한 복제본은 크기가 고정 된 배열과 관련이있는 동적 크기의 배열을 사용하기 때문에 가능하지 않다고 나는 말할 수 있습니다. –

답변

4

을 위해 당신은 std::array

std::array<bool, 5> funcName(obj obj[]) 
{ 
    std::array<bool, 5> boolArray; 
    for (int i = 0; i < 5; i++) 
    { 
     boolArray[i]=ChckFunc(obj[i]); 
    } 
    return boolArray; 
} 

을 반환하거나 당신이있는 경우 std::vector을 사용할 수 아래에 쓰기를 시도하는 메신저 의사 코드의 예입니다 검사 할 변수 수

std::vector<bool> funcName(obj obj[], int count) 
{ 
    std::vector<bool> boolArray; 
    for (int i = 0; i < count; i++) 
    { 
     boolArray.push_back(ChckFunc(obj[i])); 
    } 
    return boolArray; 
} 
+0

감사합니다. – Elliott

+0

복사본 대신 포인터를 반환하는 것이 좋습니다. 그 계산 시간 낭비. 예제 코드는 내 답변을 참조하십시오. – theV0ID

+0

대신 포인터를 반환 할 수 있지만 벡터 값을 반환 할 때 벡터의 힙 할당 비용이 복사 생성 (추가 스택 사용) 비용보다 높을 것으로 예상됩니다. 이 수준의 최적화가 프로그램에 중요하다면 두 버전의 프로파일 링을해볼 가치가 있습니다. – simonc

0
std::array<bool, 5> funcName(Obj const obj[])