2016-10-23 11 views
0

그래서 정의 된 클래스에 대한 포인터 벡터가 있습니다. 포인터 0 인덱스를 사용하고 그것을 반환하는 함수가 있습니다. 그런 다음 해당 인덱스의 데이터를 제거한 다음 벡터의 마지막 인덱스에서 항목을 가져 와서 0 인덱스에 넣어야합니다. 지금 당장은 포인터를 반환하는 경우 NULL을 포인터로 설정 한 다음 벡터에서 최종 개체를 푸시 백하고 마침내 다시 팝합니다. 이 방법이 내 문제를 해결하는 가장 좋은 방법인지 확실하지 않습니다. 여기 내 코드는 생각입니다 : 알고리즘 적고유 한 방식으로 C++에서 포인터 벡터를 업데이트해야합니다.

Instrument* loanOut() { 
for (int i = 0, i < library.size(), i++) { 
     if (library[i] != NULL) { 
      return library[i]; 
     } 
     else { 
      return NULL; 
     } 
    } 
    library[0] = NULL; 
    library.push_back(library[library.size()]); 

} 
+0

이 질문에 답할 수 없습니다. 코드에 무엇이 잘못되었는지 말할 수 있지만 대안 솔루션을 제공하기에는 문제가 너무 있습니다. – user4581301

답변

0

, 이것은 당신이 설명하는 무엇을 :

Object PopFrontAndReplace(std::vector<Object>& objects) { 
    if (!objects.size()) {return Object();} 
    Object o = objects[0]; 
    objects[0] = objects.back(); 
    objects.pop_back(); 
    return o; 
} 

합니까를 질문에 대답인가?