gpt4 book ai didi

c++ - `std::greater` 或 `std::less_equal` 的类型是什么

转载 作者:行者123 更新时间:2023-11-28 00:57:31 28 4
gpt4 key购买 nike

template <class T> struct greater : binary_function <T,T,bool> {
bool operator() (const T& x, const T& y) const
{return x>y;}
};

template <class T> struct logical_and : binary_function <T,T,bool> {
bool operator() (const T& x, const T& y) const
{return x&&y;}
};

// (i > 5 && i <=10)
countBoost = std::count_if(vecInts.begin(), vecInts.end(),
boost::bind(std::logical_and<bool>(),
^^^^ // ???? Why ????
boost::bind(std::greater<int>(), _1, 5),
boost::bind(std::less_equal<int>(), _1, 10))
);

根据我的理解,传入类型T对于 std::logical_and<T>是函数operator()的传入参数的类型.鉴于上面的代码,似乎 std::greater 的类型是bool这由 operator() 的返回值决定.

对吗?

谢谢

最佳答案

operator() 的返回类型函数是 bool 值。的类型 std::greaterstd::greater .它是一个功能对象。因此:

std::greater<int> g;
std::cout << typeof( g ).name() << std::endl;

将返回您的编译器用于显示实例化的任何内容类模板的类型:"struct std::greater<int>"对于 VC++,对于例子。

关于c++ - `std::greater` 或 `std::less_equal` 的类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284485/

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