使用std :: remove删除指针元素

时间:2013-06-16 00:30:56

标签: c++

我正在尝试

remove(pvec.begin(), pvec.end(), NULL);

删除向量中的NULL指针(其中pvec为vector<Node*>

然而,编译器给出:

&#34; ISO C ++禁止在指针和整数&#34;

之间进行比较

如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:16)

在C ++ 11中,使用nullptr

remove(pvec.begin(), pvec.end(), nullptr);
//                               ^^^^^^^

否则,对指针值执行显式强制转换。如果您的pvec包含foo*类型的指针,请写:

remove(pvec.begin(), pvec.end(), static_cast<foo*>(NULL));
//                               ^^^^^^^^^^^^^^^^^
相关问题