更新矢量中的对象属性
Updating an Object's property in a Vector
我有一个包含对象的向量。对象有一个名为first name的属性。我想更新属性中的第一个名字,为了做到这一点,我必须传递对象保存的向量,唯一标识每个对象的人员编号,最后是从用户输入中获取的新名称。
我的问题是它显示了我用来设置新名称的循环中的更新名称,但如果我使用第二个循环或新循环并再次迭代向量,则不保存新名称,但显示旧名称。
这是我所做的:-
public: void updateFirstName(vector<Administrator> vectorUpdate,string staffNumber,string newName)
{
FileHandler<Administrator> adminTObj;
for(Administrator iter: vectorUpdate)
{
if(iter.getStaffNumber()==staffNumber)
{
iter.setFirstName(newName);
cout<<"Update"<<endl;
cout<<iter.getFirstName()<<endl;
//here it prints the updated name but if i use a different loop
//and iterate through the vector the new name is not saved.
}
}
}
这里有什么问题吗?谢谢你
按值传递向量
void updateFirstName(vector<Administrator> vectorUpdate,
string staffNumber,string newName)
所以每次你调用这个函数时,你都会把原来的向量复制到它里面,然后在函数里面处理这个复制的向量。这样做的结果是对函数内部的局部变量进行了更改。相反,你想通过引用传递vector:
void updateFirstName( vector<Administrator> &vectorUpdate,
string staffNumber,string newName)
在函数体中,这里
for( Administrator iter: vectorUpdate)
你也会经历同样的事情。你想写:
for( Administrator& iter: vectorUpdate)
相关文章:
- 类对象属性是否可以调用返回属性应具有的值的方法C++?
- 对象属性同级访问
- 迭代 Napi::对象属性(键)在 Node.js C++ N-API 中
- 是否可以在C++(17)中捕获某些对象属性的破坏性赋值事件
- 分配以下对象属性在哪里
- sutex作为对象属性和对象的向量
- C++ - 在类中包含不是类对象属性的变量是否是一种不好的做法
- 根据对象属性从列表中删除对象
- 将对象属性替换为列表
- 查找对象属性是否位于对象向量C++中
- 未知EABI对象属性44
- 按矢量中的对象属性合并排序
- 如何访问带有静态回调的对象属性
- c++中对象属性的内存分配
- 为什么对象属性的值在 c++ 中将其指针添加到映射后返回零
- 如何检查对象属性更新是否存在 std::map 键,否则插入一个新键?
- 从ASP.NET应用程序查询Active Directory对象属性将返回旧结果
- 性能对象属性与范围变量
- 无法访问对象属性
- 如何从对象方法中访问对象属性