我正在尝试
remove(pvec.begin(), pvec.end(), NULL);
删除向量中的NULL指针(其中pvec为vector<Node*>
)
然而,编译器给出:
&#34; ISO C ++禁止在指针和整数&#34;
之间进行比较如何解决这个问题?谢谢!
答案 0 :(得分:16)
在C ++ 11中,使用nullptr
:
remove(pvec.begin(), pvec.end(), nullptr);
// ^^^^^^^
否则,对指针值执行显式强制转换。如果您的pvec
包含foo*
类型的指针,请写:
remove(pvec.begin(), pvec.end(), static_cast<foo*>(NULL));
// ^^^^^^^^^^^^^^^^^