하나를 선택하고 반환하기 위해 벡터를 조작하는 함수를 만들고 싶습니다. (. 최선을 선택하는 것이 가리키는 반복자를 반환하는 것)STL 벡터 및 템플릿 함수 문제
좋아, 내 헤더에 여기에이 코드를 가지고 :
이class Ecran { // That means Screen in french :P
// Other definitions...
template<typename T>
static T* SelectFrom(vector<T> & v);
}
구현 :
template <class T>
T* Ecran::SelectFrom(vector<T> &v){
int max = v.size();
cout << "Veuillez selectionner un objet parmis les suivants:" << endl << endl;
cout << "0) Aucun" << endl;
for (int i = 1; i <= max; i++){
cout << i << ") " << v[i-1] << endl;
}
bool isValid = false;
string raw;
int input;
while (!isValid){
raw = GetWord();
input = atoi(raw.c_str());
if((input >= 0) && (input <= max)){
isValid = true;
}
}
if (input == 0){
return 0;
}
return & (v[input -1]);
}
그래서, 여기 있어요 문제 : 내가 그것을 사용할 때, 컴파일러는 다음과 같이 알려준다 :
'Club * Ecr :: SelectFrom (표준 : : 벡터> &)
나는 그런 식으로 그것을 사용 : 그거야
Club * toDel = Ecran::SelectFrom(_clubs);
는, 어떤 도움을 크게 감상 할 수있다. 게다가, 이것을 할 수있는 방법이있을 것이지만 T에 대한 포인트 대신 iterator를 리턴 할 것인가?
이미 감사합니다.
헤더 파일이 같은 프로젝트에 있습니까? 이들이 동일한 솔루션을 사용하더라도 다른 프로젝트에서 하나의 프로젝트를 참조해야 할 수도 있습니다. – clamchoda