에서 const가 아닌 값을 얻는 방법 :I 클래스가있는 경우 벡터
: 방법 쓰기에vector<T> collection;
하고 싶은 :
class T{
public:
int Id;
//some methods, constructor..
}
다른 클래스를
T& getValue(int Id){
//scanning the vector till i find the right value
}
반복자를 통해 벡터를 검사하면 항상 const 값이 주어 지므로 한정자에 대한 오류가 발생합니다. 그렇다면 벡터로부터 어떻게 가치를 얻을 수 있습니까? 하지만 const가 아닙니다.
편집은 다음 답변에 따라 내가 노력에 따라서이 같은 :
Group& Server::findGroup(unsigned int userId) const{
for(auto iterator=groups.begin();iterator!=groups.end();++iterator){
if(iterator->isInGroup(userId)){
return (*iterator);
}
}
//throw exception here
}
그룹의 정의 : 벡터 그룹;
이것은 내가 처음에 준 것과 정확히 똑같은 예입니다. 그러나 지금 T는 Group입니다.
const가 필요 없다고 가정하면 벡터 내에서 수정하려고한다고 가정합니다. – Montaldo
왜 반복자를 통해 벡터를 검사하면 항상 const가 제공되는 것으로 생각합니까? 'std :: find'가 비 const 반복자를 전달하면 비 const 반복자를 반환합니다. –
이 목적으로'std :: find'를 사용할 수 있습니다. [here] (http://en.cppreference.com/w/cpp/algorithm/find) –