8

我正在尝试做

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

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

但是,编译器给出:

“ISO C++ 禁止指针和整数之间的比较”

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

4

1 回答 1

16

在 C++11 中,使用nullptr

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

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

remove(pvec.begin(), pvec.end(), static_cast<foo*>(NULL));
//                               ^^^^^^^^^^^^^^^^^
于 2013-06-16T00:33:16.693 回答