d**********u 发帖数: 3371 | 1 这里面 在typedef定义了priority_queue的新类型之后 可以用
mypq_type fifth(mycomparison(true)); // greater-than comparison
来取代指点定义中的最后一个template 参数
但是假如要取代其中一个或者两个参数呢
试验了一下并不成功 比如
mypq_type six(deque, mycomparision(true));
谢谢
class mycomparison
{
bool reverse;
public:
mycomparison(const bool& revparam = false)
{
reverse = revparam;
}
bool operator() (const int& lhs, const int&rhs) const
{
if (reverse) return (lhs>rhs);
else return (lhs
}
};
int main()
{
// using mycomparison:
typedef std::priority_queue, mycomparison>
mypq_type;
mypq_type fourth; // less-than comparison
mypq_type fifth(mycomparison(true)); // greater-than comparison
mypq_type six(mycomparison(true)); // greater-than comparison
while (1);
return 0;
} | t****t 发帖数: 6806 | 2 container type, as well as comparison functor, are types. you need to define
it in the typedef, e.g.
typedef priority_queue, mycomparison> mypq_type1;
【在 d**********u 的大作中提到】 : 这里面 在typedef定义了priority_queue的新类型之后 可以用 : mypq_type fifth(mycomparison(true)); // greater-than comparison : 来取代指点定义中的最后一个template 参数 : 但是假如要取代其中一个或者两个参数呢 : 试验了一下并不成功 比如 : mypq_type six(deque, mycomparision(true)); : 谢谢 : class mycomparison : { : bool reverse;
| d**********u 发帖数: 3371 | 3 谢谢
那么关于这一行的用法
mypq_type fifth(mycomparison(true));
其作用只是给之前typedef中的mycomparision传递一个参数么?
define
【在 t****t 的大作中提到】 : container type, as well as comparison functor, are types. you need to define : it in the typedef, e.g. : typedef priority_queue, mycomparison> mypq_type1;
| t****t 发帖数: 6806 | 4 是的.
【在 d**********u 的大作中提到】 : 谢谢 : 那么关于这一行的用法 : mypq_type fifth(mycomparison(true)); : 其作用只是给之前typedef中的mycomparision传递一个参数么? : : define
| d**********u 发帖数: 3371 | 5 明白了 谢谢!
【在 t****t 的大作中提到】 : 是的.
|
|