我試圖理清C++排序不使用自定義功能
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進行編譯時,出現運算符<未定義的錯誤。 我開始嘗試使用自己的排序功能,而不是我已經定義的排序功能。
我不知道如何解決這個問題,有什麼建議嗎?
其他詳細信息: 確保所有載體的大小相同。 它的目的是一個向量的每個字符串的原始矢量的排列。 每個字符串都是一個命令,我正在尋找這些命令可以混洗的所有不同方式。所以我需要去掉重複的東西。
你能指出你有錯誤的那一行嗎? – Grzegorz
你如何期望根據不平等的概念來排序**? –
它是中的一個斷言,表明operator <是未定義的。我不知道爲什麼這是一個問題,如果我提供自己的比較器 –
clark