我正在尝试排序
std::vector< std::vector< std::string> > perm;
我正在尝试std::sort
从算法标题中使用
我打电话给它
std::sort( perm.begin(), perm.end(), sortPerms);
这是我的排序功能:
bool sortPerms (const std::vector<std::string> &i, const std::vector<std::string> &j) {
for(unsigned int x = 0; x < i.size(); x++) {
if(i[x] != j[x])
return false;
}
//both are equal
return true;
}
排序的目的是然后调用 std::unique 以获得具有唯一值的向量。当我在 cygwin 中使用 gcc 进行编译时,我没有收到任何错误,但我有重复,当我使用 Visual Studio 2010 进行编译时,我收到一个错误,即 operator< 未定义。我一步一步地尝试使用它自己的排序功能,而不是我定义的那个。
我不确定如何解决这个问题,有什么建议吗?
其他细节:保证所有向量的大小相同。它的目的是字符串原始向量的每个排列的向量。每个字符串都是一个命令,我正在寻找可以改变这些命令的所有不同方式。所以我需要去除重复项。