写点什么

list 的使用方式

作者:用户10086
  • 2022 年 7 月 15 日
  • 本文字数:724 字

    阅读完需:约 2 分钟


前提要点

list 作为一种常见的存储数据的方式,在写项目中需要使用非常的普遍,但是 list 也有多种不同的方式 使用不当可能会导致出现奔溃等情况,现在我将自己的经验总结起来。

list 的复制

例子展示:


std::list<int>::iterator rit = a.begin();std::list<int>::iterator rend = a.end();for(++rit;rit != rend;++rit)b.push_back(*rit);
复制代码


在 list 的遍历过程中,不能使用普通的便利方式,他需要指出 list 的首个数据 (获取方式 a.begin()) 以及尾部数据(获取方式 a.end()) ,通过这两个数据给他设置范围,依次循环结束后需要给他向前移位赋值,将这个数据插入到新的 list 中。

list 的删除

list<QString>::iterator iter = var_paper.questinList.begin();
while (iter!= var_paper.questinList.end())
{
var_paper.questinList.erase(iter);
iter = var_paper.questinList.begin();
}
复制代码


通过遍历的方式全部删除,每次把首位删除后需要,他会自动的向前叠加。原来的第二项会变成他的首项,当他是最后一项的时候退出 while 循环。


注: 在需要将数据清空加入同一个 list 中时,需要首先对 list 进行清空处理,否则在插入式他会自动叠加插入,系统不会自行删除,这个主要是在调用函数使用插入数据的情况,因为调用函数你可能不会仔细去看里面是否清空处理,导致后续出现错误。


删除的多种方式 eraseLst1.erase(对应 list 的类型) 删除数据 前提要知道这个内容,否则无法删除成功 Lst1.pop_back() 删除最后一个元素 Lst1.pop_front() 删除第一个元素 Lst1.remove(位置) 从 list 删除指定的元素 他需要知道所在位置 通过位置查询删除

总结

我所展示出来的仅仅是 list 的冰山一角,如果有兴趣可以多查查关于他的内容 如果有错误,希望各位可以批评指正!

发布于: 刚刚阅读数: 3
用户头像

用户10086

关注

还未添加个人签名 2022.07.01 加入

一个辣椒爱好者

评论

发布
暂无评论
list的使用方式_qt_用户10086_InfoQ写作社区