我不知道如何hash_set
在 C++ 中使用。我对这种语言非常陌生,所以我不明白如何做很多事情。如何使用 SGIhash_set
扩展使编译器最终编译无误?这是我的头文件:
#ifndef _GAME1_H
#define _GAME1_H
#include "card.h"
#include "deck.h"
#include <ext/hash_set>
const unsigned int TRIALS = 10;
class Game1 {
private:
// Card::Value is defined in card.h as a public enum:
// enum Value { NullCard, Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King };
std::hash_set<Card::Value> *map; // does this really need to be a pointer?
public:
Game1();
bool isPair();
bool isFlush();
void returnToDeck();
};
#endif
当我尝试编译时,我得到:
In file included from game1.cpp:9:
game1.h:13: error: using-declaration for non-member at class scope
game1.h:13: error: expected `;' before '<' token
make: *** [game1.o] Error 1
- 我不知道“类范围内的非成员使用声明”是什么意思。
- 为什么编译器抱怨“预期的`;' 当我基本上遵循与SGI 在其网站上的相同示例时,在 '<' token" 之前?
- 我正在使用 gcc 3.4.6,所以我不能使用
unordered_set
- 我看过简单的 C++ hash_set 示例,但我不明白他们为什么使用
hash<int> H;
这相关吗?
我陷入了僵局,因为在咨询谷歌数小时后我真的无法弄清楚这一点。