vector<unsigned int> x;
vector<unsigned int>::iterator itr;
unsigned int varF;
...
....
// find and delete an element from a vector.
itr = std::find(x.begin(), x.end(), varF); // <algorithm>
if (itr != x.end())
x.erase(itr);
//or
x.erase(std::remove(x.begin(), x.end(), varF), x.end());
내가 포인터포인터 벡터에서 요소 찾기 및 삭제?
내가 포인터의 벡터에 대해 위의 기능을 변환 할 수있는 방법vector<unsigned int*> x;
의 벡터이 벡터를 변환 할? 당신이 C++ (11), 대신 명시 적 술어의 람다를 사용할 수있는 경우
struct FindIntFromPointer
{
FindIntFromPointer(int i) : n(i) { }
bool operator()(int * p) const { return n == *p; }
private:
int n;
};
std::find_if(x.begin(), x.end(), FindIntFromPointer(varF));
x.erase(std::remove_if(x.begin(), x.end(), FindIntFromPointer(varF)), x.end());
:
왜 포인터가 필요하다고 생각하십니까? –
절대적으로 동일해야합니다. 정확히 뭐가 잘못 됐어? 유일한주의 사항은 벡터에서 포인터를 제거하기 전/후에 포인터를 해제해야한다는 것입니다. –