如何在c++中自定义stack类的比较函数

avatar
作者
筋斗云
阅读量:0

在C++中,可以通过提供自定义的比较函数来定制stack类的行为。这通常是通过使用std::stack的模板参数和提供一个自定义的比较对象来实现的。下面是一个示例,展示了如何创建一个自定义比较函数并将其用于std::stack

首先,定义一个自定义比较函数,例如:

#include <iostream> #include <functional> #include <stack>  // 自定义比较函数 struct CustomCompare {     bool operator()(const int& a, const int& b) const {         return a > b; // 实现降序排列     } }; 

接下来,创建一个使用自定义比较函数的std::stack实例:

int main() {     // 使用自定义比较函数创建一个整数栈     std::stack<int, std::vector<int>, CustomCompare> myStack;      // 向栈中添加元素     myStack.push(5);     myStack.push(3);     myStack.push(8);     myStack.push(1);      // 打印栈中的元素     while (!myStack.empty()) {         std::cout << ' ' << myStack.top();         myStack.pop();     }     std::cout << std::endl;      return 0; } 

在这个示例中,我们创建了一个名为CustomCompare的结构体,它实现了operator(),用于比较两个整数。然后,我们将这个自定义比较函数作为模板参数传递给std::stack,以便在栈中实现降序排列的元素。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!