为比较器指定一个构造函数,该构造函数接受参数以确定比较器的行为:
struct sortset
{
sortset(const string& sortingVar) : sortingVar(sortingVar) {}
bool operator() (const string& s1, const string& s2) const {
//Sorting algorithm based on "sortingVar"
}
private:
const string sortingVar;
};
int main() {
string sortingVar; cin >> sortingVar;
// Either:
set<string, sortset> mySet{sortset{sortingVar}};
// Or:
sortset comp{sortingVar};
set<string, sortset> mySet{comp};
// ...
}
请注意
the set constructor
允许您提供比较器的实际实例,以便您可以使用该实例来传递一个未默认构造的实例(这也是一件好事,因为现在不可能存在这样的实例)。
添加一些
std::move
如果你愿意的话。
别忘了付出
main
返回类型。