list的使用方式
【摘要】 list 作为一种常见的存储数据的方式,在写项目中需要使用非常的普遍,但是list也有多种不同的方式 使用不当可能会导致出现奔溃等情况,现在我将自己的经验总结起来。 list 的复制例子展示:std::list<int>::iterator rit = a.begin();std::list<int>::iterator rend = a.end();for(++rit;rit != ren...
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进行清空处理,否则在插入式他会自动叠加插入,系统不会自行删除,这个主要是在调用函数使用插入数据的情况,因为调用函数你可能不会仔细去看里面是否清空处理,导致后续出现错误。
删除的多种方式
erase
Lst1.erase(对应list的类型) 删除数据 前提要知道这个内容,否则无法删除成功
Lst1.pop_back() 删除最后一个元素
Lst1.pop_front() 删除第一个元素
Lst1.remove(位置) 从list删除指定的元素 他需要知道所在位置 通过位置查询删除
总结
我所展示出来的仅仅是list的冰山一角,如果有兴趣可以多查查关于他的内容 如果有错误,希望各位可以批评指正!
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)