c++: 我在一个cpp的主函数里面调用了自己写的“A.h”文件,“A.h”文件里面有STL的list容器,list容器是调

c++: 我在一个cpp的主函数里面调用了自己写的“A.h”文件,“A.h”文件里面有STL的list容器,list容器是调用“usr.h” 的class user{ public: int a;}进行初始化的,list<user> usr;
可是在编译的时候提示usr.push_back();操作出错Invalid arguments ' Candidates are: void push_back(const User &) '
对于迭代器对list中元素的成员a的访问也出错:
code:
list<User>::const_iterator find_iterator;
......
find_iterator->a // 这里提示错误:Field '_id' could not be resolved

第1个回答  2012-11-23
很明显楼主没有 先了解清楚 LIST 的具体用法,建议使用容器时先了解清楚容器的相关用法再使用
根据错误提示可以知道,作者是直接调用 usr.push_back() 的 没有传递参数
第2个回答  2012-11-23
user l; push_back(l); find_iterator=usr.begin();
要注意迭代器失效的情况,如果执行了erase(i);
那么迭代器就会失效要重新赋值或者 i=usr.erase(i);//返回的是i的下一个地址本回答被网友采纳
第3个回答  2012-11-29
usr.push_back();
Invalid arguments ' Candidates are: void push_back(const User &) '
// 需要一个const user&类型的参数
list<User>::const_iterator find_iterator;
find_iterator = usr.begin();本回答被提问者采纳
相似回答