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:很高兴能帮上忙:)