在标题中:
list< SKPair<VALUETYPE> > *values[256];
在实施中:
const list< SKPair<VALUETYPE> > *bucket = values[0];
typename list< SKPair<VALUETYPE> >::iterator it = bucket.begin();
gcc编译器抱怨第二行:
error: request for member ‘begin’ in ‘bucket’, which is of non-class type ‘const std::list<SKPair<int>, std::allocator<SKPair<int> > >*’
(在main
中,我创建了一个我的班级的测试实例,其中VALUETYPE
是int
。)知道我做错了什么吗?
答案 0 :(得分:3)
写:
typename list< SKPair<VALUETYPE> >::iterator it = bucket->begin();
此处需要->
。
答案 1 :(得分:1)
bucket
被声明为指针,因此您需要一个解除引用运算符来访问其成员:
auto it = bucket->begin();
如果您有C ++ 11 auto
可用,那么应该可以解决这个问题。