如果与变量匹配,如何从结构列表中删除1个结构
How to delete 1 struct from a list of structs if matching the variable?
所以我试图从列表中删除结构的所有变量,我的结构也是
struct LoginDetails
{
public:
string userName;
string userFirstName;
string userLastName;
string password;
string tutor;
int userAccess;
};
如何添加到以下代码中,然后删除结构中的所有内容。
cout << "Please enter a username to upgrade the account.n";
cin >> username;
for (list<LoginDetails>::iterator itri = loginDetails->begin(); itri != loginDetails->end(); itri++)
{
if (itri->userName == username)
{
}
}
看起来您想从列表中删除项目,您可以执行以下操作:
list<LoginDetails>::iterator itri = loginDetails->begin();
while ( itri != loginDetails->end() )
{
if (itri->userName == username)
{
loginDetails->erase(itri++);
}
else
{
++itri;
}
}
您可以这样做:-
for (list<LoginDetails>::iterator itri = loginDetails->begin(); itri != loginDetails->end(); )
{
if (itri->userName == username)
{
itri = loginDetails->erase(itri);
}
else
itri++;
}
但请记住,对于list,您可以擦除一个元素,而不会影响其他元素的任何迭代器的有效性。像vector或deque这样的其他容器就不那么好了。对于那些容器,只有在擦除迭代器之前的元素保持不变。这种差异仅仅是因为列表将元素存储在单独分配的节点中。去掉一个环节很容易。向量是连续的,取出一个元素会将所有元素移回一个位置。
相关文章:
- 在C++中循环访问自定义结构列表的小问题
- 如何从结构列表中筛选信息
- C++使用旧编译器GCC 4.4.0在结构列表中查找字符串
- 唯一的结构列表
- 如何查找结构列表项
- 将数组/对象/结构列表从C#库中传递给C MFC应用程序
- 是否可以将结构列表从C 传递到C#
- C++ 分段错误 - 具有集合的结构列表
- 双链接结构列表的内存泄漏
- 如何在 c++ 中使用结构列表
- C++如何访问结构列表的字符串成员
- 按元素对结构列表进行排序
- 对结构列表进行排序
- C++数据结构列表,在我的代码中
- 要排序或搜索的结构列表(C++)
- C++结构列表中插入元素
- 分配结构列表的向量
- 当我尝试从结构列表中访问内存时出现错误:" Program received signal SIGSEGV, Segmentation fault."
- 如果与变量匹配,如何从结构列表中删除1个结构
- 如何使用整数参数(c++)访问结构列表