【发布时间】:2015-09-15 17:37:41
【问题描述】:
我正在用一些对象填充 std::vector。
下面一行中定义的这个向量实例:
std::vector< std::list< pcl::PointXYZRGB>> tab;
我现在想删除空单元格。我试过如下:
tab.erase(remove_if(tab.begin(), tab.end(), std::is_empty), tab.end());
我收到以下错误:
error: missing template arguments before ‘)’ token
voxels.erase(remove_if(voxels.begin(), voxels.end(), is_empty**)**, voxels.end());
我很困惑,谁能告诉我该怎么做?
【问题讨论】:
-
在询问有关堆栈溢出的问题时,提供足够的信息以供回答是很重要的。您应该做的第一步是尝试将您的问题减少到更小的问题。你不明白
erase和remove_if是如何工作的;所以创建一个使用这些函数的小程序,看看你是否会得到同样的错误。您可以通过从完整程序开始并删除部分来做到这一点,或者从一个空程序开始并添加部分。一旦您有了一个简单、自包含和完整的示例,您就可以询问该问题。跨度> -
@T.C. OP 在下面的评论中回答了您的问题:
std::is_empty是她试图使用的。好老using namespace std,是不是很可怕?
标签: c++ c++11 vector erase remove-if