これは、テンプレート クラスとそのコンストラクターのコードです。要素が複雑なテンプレート型であるベクターを初期化できません。
template <class Key, class Obj>
class HashTable{
typedef int T;
typedef pair<const Key, Obj> Entry;
typedef list<Entry> Bucket;
typedef vector<Bucket> BktArray;
private:
T n, nbuckets;
BktArray a;
public:
HashTable(T capacity = 199){
n = 0;
nbuckets = capacity;
Bucket b();
a = vector<Bucket>(capacity, b);
}
};
行に「呼び出しに一致する関数がありません」というメッセージが表示されます。
a = vector<Bucket>(capacity, b);
「容量」要素を含むようにベクトルを初期化したいと思います。