从向量访问成员功能
Accessing member functions from a vector
我在使用向量方面有一个小问题。我有一个矢量,该向量存储由员工课程创建的员工对象。
vector <Staff> staffList;
vector <Staff>::iterator sit;
我在此向量中添加了几个员工对象。我的员工课程有:
Staff getStaffAccount(string);
int getAccessLevel();
string getUserName();
int getStaffID();
string getPassword();
void setStaffIDNumber(int const);
void setUsername(string);
void setPassword(string);
void setAccessLevel(int);
static void changePassword(Staff*);
当我需要修改员工对象时,我要做的就是获取员工对象并修改它。这就是我得到员工对象的方式:
Staff* Staff::searchByID(int staffID){
const int vectorSize = staffList.size();
for (int i=0; i<vectorSize; ++i){
if (staffList[i].getStaffID() == staffID){
return &staffList[i];
break;
}
}
return NULL;
}
现在,在对象更改后,我不知道如何将更改的对象保存到向量中。例如,我可以为员工对象设置passpassword(),直到密码更改密码该对象在内存中。但是,一旦将其从向量销毁并再次加载,密码就会重置为矢量中的先前值。
- 我可以在矢量中修改员工对象吗?
- 如果是这样,如何在向量中搜索员工对象?(要搜索我遇到了vector ::查找方法,但是我不确定如何在对象上使用它。
而不是使用for循环,您可以使用
Staff* Staff::searchByID(int staffID){
auto i = std::find_if(staffList.begin(), staffList.end(); [staffID](Staff &s) {
return s.getStaffID() == staffID;
});
if(i != staffList.end()) return &(*i);
return NULL;
}
实际问题。因为您使用的是指针,所以原件应该更改。
编辑:这是测试代码:http://ideone.com/hqv6md
相关文章:
- 类模板的成员功能的定义在单独的TU中完全专业化
- 升压信号2将插槽传递到成员功能以断开连接
- 多次实现成员功能
- 如何定义可变参数类模板的成员模板功能
- 私有成员数据不可用于公共成员功能
- 好友功能 - 成员无法访问
- 如何启用友元类的友元功能直接在C++中访问其私有成员
- 无法从好友功能访问类的私有成员?"ostream"不是"std"的成员?
- C++从成员类型中扣除类型的功能模板?
- 如何避免大多数成员功能相同的代码重复
- 无法访问公共功能? 没有指定成员?
- C 成员功能
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- C 朋友课程和朋友成员功能
- C 函数调用包装器包含类成员功能作为模板参数
- 共享库中静态功能成员的破坏顺序
- 可以使用仅功能成员属性进行回调界面
- 虚拟方法与std ::功能成员变量在性能方面
- 虚拟继承和功能成员
- 指向功能成员和非成员的指针