Я получаю странную ошибку компилятора, и, поскольку я новичок в использовании set с пользовательскими структурами, я не уверен, в чем именно проблема.
Я пытаюсь создать набор "пары" и использую пользовательскую функцию сравнения для вставки указанной пары.
struct pairT {
std::string first, second;
};
int PairCmp(pairT &one, pairT &two) {
if (one.first < two.first && one.second == two.second) return 0;
else if (one.first < two.first) return -1;
else if (one.first == two.first && one.second < two.second) return -1;
return 1;
}
std::set<pairT> CartesianProduct (std::set<std::string> &one, std::set<std::string> &two) {
std::set<pairT> returnSet(PairCmp);
/.../
Я получаю сообщение об ошибке из последней строки кода:
C2664 "не может преобразовать параметр 1 из int в const std :: less ... бла, бла, бла.
Какие-нибудь предложения относительно того, почему меня пинают в задницу?