这里为什么会报错呢?it->empty()这不就是迭代器解引用并且成员访问吗?报错说是it不是类类型
it解引用后是char类型,char类型是基本数据成员,不是类类型,也没有empty()方法。编译器报的没毛病。
错了。。void* p = pc
你试试(*it).empty(),it只是迭代器,不具有类或者容器的成员函数使用方法!
it只是指针而已,指向的只是一片内存区域,要用类型转换才行
就像void * 一样
char* pc= "asdas";
void* p = a;
printf("%s\n", p);能打印么一样的道理 我是这样想的 至于auto 是怎么处理的就不知道了。