相关疑难解决方法(0)

用于list :: sort的C++自定义比较函数

嗨,我在编译一段简单的代码时遇到了麻烦.我正在创建一个实现卡片组的类,我想使用list :: short方法创建一个shuffle方法.

相关代码:

加入deck.h

#ifndef _DECK_H
#define _DECK_H

#include <list>
#include <ostream>

#include "Card.h"
#include "RandomGenerator.h"

using namespace std;

class Deck {
private:
    static const int CARD_NUMBER = Card::CARDS_PER_SUIT*Card::SUIT_NUMBER;
    list<Card *> *cards;
    RandomGenerator rg;

public:
    Deck();
    ~Deck();
    void shuffle();
private:
    bool const compareRandom(const Card *a, const Card *b);

};

#endif  /* _DECK_H */
Run Code Online (Sandbox Code Playgroud)

deck.cc:

#include "Deck.h"

/**
 * Fills the deck with a set of 52 cards
 */
Deck::Deck() {
    cards = new list<Card *>();
    for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers list

3
推荐指数
3
解决办法
7487
查看次数

如何在需要成员数据时对std:list进行排序?

所以如果我可以使用向量,我会知道如何对它进行排序,但我们需要使用列表来实现它.我们的教授说我们可以使用已在列表类中实现的sort函数.如果它是一个向量,我可以创建一个结构,然后使用<algorithm>中的sort来查看我的列表,但它不会让我使用它,因为std :: list没有随机访问.API说"模板<class Compare>",但我认为这不会对我有所帮助.

我知道我可以使用sort函数,但我需要使用成员数据对它进行排序.我按极角对点进行排序,我需要使用当前Point作为我的类的成员作为"原点",所以我不能像往常那样使用静态排序比较器.

编辑我正在使用它作为我的排序调用: sortedList.sort(sorting);

这是我的功能:

bool sorting(const Point& p, const Point& q) {
    Point z = pointStack.top();
    Point u = Point(p.getX() - z.getX(), p.getY() - z.getY());
    Point v = Point(q.getX() - z.getX(), q.getY() - z.getY());
    double r = u.polarAngle();
    double s = v.polarAngle();
    if (r < s) {
            return true;
    } else { 
            return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直在

c:\ users\wooly\documents\visual studio 2010\projects\proj5\proj5\grahamscan.cpp(20):错误C3867:'GrahamScan :: sorting':函数调用缺少参数列表; 使用'&GrahamScan :: sorting'创建指向成员的指针

因为我需要pointStack的最高值来进行排序,但它是我班级的成员.

c++ sorting list

1
推荐指数
1
解决办法
2021
查看次数

标签 统计

c++ ×2

list ×2

function-pointers ×1

sorting ×1