gpt4 book ai didi

c++ - 在模板实例化中使用运行时值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:57 28 4
gpt4 key购买 nike

请考虑类 A 和函数对象 A_lessA_less 比较两个 A 指针,具体取决于 A::getvalue() 的结果。

class A {
int getvalue(const string &Parameter);
};

struct A_less : public binary_function<A *, A *, bool> {
A_less(const string &P) : Parameter(P) { }
bool operator()(const A *lhs, const A *rhs) const {
return A->getvalue(Parameter) < rhs->getvalue(Parameter);
}
string Parameter;
}

我如何着手声明/创建排序的容器(集合、priority_queues,...),A 指针,根据特定的(run- time) Parameter 的值?

最佳答案

像这样:

std::string p = ...;
std::set<A,A_less> m(A_less(p));

您必须指定模板参数Compare(这是set 的第二个参数)。构造 map 时,需要将比较函数对象交给map的构造函数。

关于c++ - 在模板实例化中使用运行时值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com