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

C++ 使用std::remove删除指针元素,c++,C++,我正在努力 remove(pvec.begin(), pvec.end(), NULL); 删除向量中的空指针(其中pvec是向量) 但是,编译器提供: “ISO+ C++禁止指针与整数的比较”< /P> 如何解决这个问题?谢谢 在C++11中,使用nullptr: remove(pvec.begin(), pvec.end(), nullptr); // ^^^^^^^ 否则,对指针值执行显式转换。如果您的pvec包含foo*类型

我正在努力

remove(pvec.begin(), pvec.end(), NULL);
删除向量中的空指针(其中pvec是向量)

但是,编译器提供:

“ISO+ C++禁止指针与整数的比较”< /P>
如何解决这个问题?谢谢

在C++11中,使用
nullptr

remove(pvec.begin(), pvec.end(), nullptr);
//                               ^^^^^^^
否则,对指针值执行显式转换。如果您的
pvec
包含
foo*
类型的指针,请编写:

remove(pvec.begin(), pvec.end(), static_cast<foo*>(NULL));
//                               ^^^^^^^^^^^^^^^^^
remove(pvec.begin()、pvec.end()、static_cast(NULL));
//                               ^^^^^^^^^^^^^^^^^

@AlanShore:很高兴能帮上忙:)