list基本使用
list和vector的用法基本相同,区别如下:
list可以头尾插入和删除,效率一样,vector只有尾部插入和删除效率才高,头部操作效率很低
list的排序有专有的接口,不能使用全局的接口,原因是list中的节点不能随机访问,vector中的节点可以随机访问
vector是连续存储,list不是连续存储
基本用法
#include <iostream>
#include <list> using namespace std; /*
clear() 清空链表
empty() 判断list是否为空
size() 获取list中的元素个数
pop_back() 删除最后一个元素(效率高)
pop_front() 删除第一个元素(效率高)
push_back() 在list的末尾添加一个元素(效率高)
push_front() 在list的头部添加一个元素(效率高)
erase() 删除指定元素
sort() 排序
reverse() 反转
*/ int main()
{
list<int> l; l.push_back();
l.push_back();
l.push_front();
l.push_front(); cout << "size : " << l.size() << endl; l.sort(); // 特有排序接口 reverse(l.begin(), l.end()); // 4 3 2 1
for(list<int>::iterator it = l.begin(); it != l.end(); ++it)
{
cout << *it << ends;
}
cout << endl; l.clear(); cout << "size : " << l.size() << endl; return ;
}
循环删除(类似vector)
#include <iostream>
#include <list> using namespace std; int main()
{
list<int> l; l.push_back();
l.push_back();
l.push_front();
l.push_front(); // 循环删除
for(list<int>::iterator it = l.begin(); it != l.end();)
{
if(*it == )
{
it = l.erase(it);
}
else
{
++it;
}
} // 2 3 1
for(list<int>::iterator it = l.begin(); it != l.end(); ++it)
{
cout << *it <<ends;
}
cout << endl; return ;
}
随机推荐
- 测试同学动手搭个简易web开发项目
技术栈 node.js, vue.js, axios, python, django, orm, restful api, djangorestframework, mysql, nginx, jen ...
- Data Science and Matrix Optimization-课程推荐
课程介绍:Data science is a "concept to unify statistics, data analysis, machine learning and their ...
- yum只下载不安装
1 修改/etc/yum.conf的keepcache=1 [root@136 packages]# vi /etc/yum.conf keepcache=1 2 安装yum-utils包 [root ...
- RocketMQ入门到入土(一)新手也能看懂的原理和实战!
学任何技术都是两步骤: 搭建环境 helloworld 我也不例外,直接搞起来. 一.RocketMQ的安装 1.文档 官方网站 http://rocketmq.apache.org GitHub h ...
- 逻辑式编程语言极简实现(使用C#) - 2. 一道逻辑题:谁是凶手
本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 这是一道Prolog经典的练习题,中文翻译版来自阮一峰的文章<Prolog 语言入门教程>. 问题 B ...
- JavaScript基础初始时期分支(018)
Init-Time Branching初始时期分支是一种用做优化的模式.如果某些条件在程序启动后就不再改变,那么我们就只需要在初始时期检查一次就可以了,而不是在每次 需要用到这些条件的时候都检查一次. ...
- Linux下C++动态加载so 调用方法
Windows 下的C++动态加载DLL调用方法 文献参考 http://man7.org/linux/man-pages/man0/dlfcn.h.0p.html http://man7.org/l ...
- 【Oracle】Oracle wrong result一则(优化器问题)
现象如下: SYS@proc> select * from v$version where rownum=1; BANNER ---------------------------------- ...
- PHPstorm常用快捷键(Windows)
本文整理本人在日常工作中使用最频繁的PHPstorm快捷键,以作为自己的总结备忘,也希望能够帮到有需要的小伙伴. 以下快捷键大致按本人的使用频率从高到低来介绍. 1.复制.粘贴 Ctrl+c .Ctr ...
- iframe 透明兼容,设置iframe透明背景的方法
从IE5.5+就支持iframe框架的背景透明.通过使用allowtransparency和background-color来设置iframe框架的透明效果,代码如下: <iframe src= ...