当我尝试编译时出现错误,我不知道为什么,因为两组括号都匹配。
#include <iostream>
#include <vector>
#include <list>
#include <string>
#include <utility>
#include <fstream>
namespace cop4530 {
template <typename T>
class HashTable {
public:
HashTable(size_t size = 101);
~HashTable();
bool contains(const T &);
bool insert(const T &);
bool insert(T && );
bool remove(const T& );
void clear();
bool load(const char *);
void dump();
bool write_to_file(const char *);
// used when improper size is given (for example
// size is 0 or negative)
static const unsigned int default_capacity = 11;
static const unsigned int max_prime = 1301081;
private:
std::vector<std::list<T>> listTab;
void makeEmpty();
void rehash();
size_t myhash(const T &);
unsigned long prime_below(unsigned long);
void setPrimes(std::vector<unsigned long> &);
int currentSize;
}; // end of HashTable
#include "hashtable.hpp"
}; // end of namespace 4530
或者问题可能在.hpp甚至是main.cpp?
谢谢!
答案 0 :(得分:3)
这里:
vector<std::list<T>>
>>
是大多数编译器读取为运算符的标记,如此行中的标记:
std::cin >> toto;
它使你的编译器从这一行变得疯狂,并在之后打印出奇怪的错误。
插入空格以将其定义为双模板括号标记:
vector<std::list<T> >
答案 1 :(得分:0)
命名空间的右括号后面没有分号。