在刷题过程中遇到了list中常用的函数,所以总结下来, 希望对大家有用。
#include <list>
using namespace std;
list采用链式存储方法,所以list不能随机存取,但是在list插入和删除元素高效。
判空: empty
语法:
bool empty();
empty()函数返回真(true)如果链表为空,否则返回假。例如:
list<int> the_list;
for( int i = 0; i < 10; i++ )
the_list.push_back( i );
while( !the_list.empty() ) {
cout << the_list.front() << endl;
the_list.pop_front();
}
获取list中元素的个数 size
语法:
size_type size();
size()函数返回list中元素的数量。
增 push_back push_front insert
在链表的尾部插入元素: push_back
push_back
语法:
void push_back( const TYPE &val );
push_back()将val连接到链表的最后。例如:
list<int> the_list;
for( int i = 0; i < 10; i++ ){
the_list.push_back( i );
}
在链表的首部插入元素: push_front
push_front
语法:
void push_front( const TYPE &val );
push_front()函数将val连接到链表的头部。
在链表的指定位置上插入元素: insert
insert
语法:
iterator insert( iterator pos, const TYPE &val );
void insert( iterator pos, size_type num, const TYPE &val );
void insert( iterator pos, input_iterator start, input_iterator end );
insert()插入元素val到位置pos,或者插入num个元素val到pos之前,或者插入start到end之间的元素到pos的位置。返回值是一个迭代器,指向被插入的元素。
删 pop_back pop_front erase clear
删除链表的最后一个元素,但不返回链表最后一个元素的值: pop_back
pop_back
语法:
void pop_back();
pop_back()函数删除链表的最后一个元素。
删除链表首部的元素,但不返回链表第一个元素的值: pop_front
pop_front
语法:
void pop_front();
pop_front()函数删除链表的第一个元素。
删除链表指定位置上的元素: erase
erase
语法:
iterator erase( iterator pos );
iterator erase( iterator start, iterator end );
erase()函数删除以pos指示位置的元素, 或者删除start和end之间的元素。 返回值是一个迭代器,指向最后一个被删除元素的下一个元素。
删除链表中的所有元素 clear
clear
语法:
void clear();
clear()函数删除list的所有元素。
获取链表最后一个元素back和第一个元素front
获取list的最后一个元素,但不删除最后一个元素:
back
语法:
reference back();
back()函数返回一个引用,指向list的最后一个元素。
获取list的第一个元素,但不删除第一个元素:
front
语法:
reference front();
front()函数返回一个引用,指向链表的第一个元素。
list<int> the_list;
for( int i = 0; i < 10; i++ )
the_list.push_back( i );
while( !the_list.empty() ) {
cout << the_list.front() << endl; the_list.pop_front(); }
遍历链表 begin end
获取指向list第一个元素的迭代器:
begin
语法:
iterator begin();
begin()函数返回一个迭代器,指向list的第一个元素。例如,
// 创建一个元素类型是字符的链表
list<char> charList;
for( int i=0; i < 10; i++ )
charList.push_front( i + 65 );
// 显示这个链表
list<char>::iterator theIterator;
for( theIterator = charList.begin();
theIterator != charList.end();
theIterator++ )
cout << *theIterator;
获取指向list末尾的迭代器:
end
语法:
iterator end();
end()函数返回一个迭代器,指向链表的末尾。
链表合并 merge
merge
语法:
void merge( list &lst );
void merge( list &lst, Comp compfunction );
merge()函数把自己和lst链表连接在一起,产生一个整齐排列的组合链表。如果指定compfunction,则将指定函数作为比较的依据。
将list中的元素逆序 reverse
reverse
语法:
void reverse();
reverse()函数把list所有元素倒转。
对list中的元素进行排序 sort
排序(sort)
语法:
void sort();
void sort( Comp compfunction );
sort()函数为链表排序,默认是升序。如果指定compfunction的话,就采用指定函数来判定两个元素的大小。
修改链表的长度 resize
修改链表的大小,多余元素用val填充: resize
resize
语法:
void resize( size_type num, TYPE val );
resize()函数把list的大小改变到num。被加入的多余的元素都被赋值为val
删除链表中的重复元素 unique
unique
语法:
void unique();
void unique( BinPred pr );
unique()函数删除链表中所有重复的元素。如果指定pr,则使用pr来判定是否删除
文章浏览阅读766次。谷歌从来是不缺牛人的地方,现在又有牛人加盟。据国外媒体报道,被中国程序员戏称为“高司令”的Java创始人詹姆斯·高斯林(James Gosling)周一发表博客文章称,他已经加入了谷歌公司。[img]http://dl.iteye.com/upload/attachment/450423/cf25e4e1-9232-3acd-aabf-b9272e91cfb5.jpg[/img]...
文章浏览阅读172次。RocketMQ 从哪入手1.MQ的优缺点?当前常用MQ的对比?MQ的优缺点当前常用MQ的对比2.自己的学习方法(菜鸡)3.自己部署的步骤、遇到的一些问题,以及解决方案4.集群的搭建方式(以双主双从为例子)5.RocketMQ中NameServer相关部分源码解析1.MQ的优缺点?当前常用MQ的对比?MQ的优缺点优点: 解耦 削峰 分发(数据)缺点: 系统可用性降低 系统复杂度提高(重复消费,消息丢失,顺序消费) 一致性问题当前常用MQ的对比 现在主流MQ主要有三种 : Rock_rocketmq 存在哪里
文章浏览阅读3.5k次。Flash Communication Server相关Flash Communication Server的十大功能作者: Kyle 11/21/02 内容: 1.建立截然不同的应用程序透过Macromedia Flash Communication Server ,您可以在网站内容中建立和整合出全新型态的互动功能和用户体验。您可以轻易地在网站和应用程序中,增加像聊天室、串流视讯、多_flash 白板
文章浏览阅读302次。1、首先,为了保证数据库的安全性,我们在安装数据库的时候都会设置密码,我们根据自己的设置进行身份验证,连接本地数据库服务器:方式一:如果你想要看到你自己输入的密码,直接在p后面输入即可,反之直接回车进行输入mysql -uroot -p方式二:如果仅仅是访问自己电脑上的mysql建议用方式一,比较简单,但是如果你想要访问其他电脑上配置的mysql服务,就需要在-h后输入该电脑的ip,-P后..._数据库怎么定义表的字段命令行
文章浏览阅读432次。This struck me as particularly interesting, because it's one of those "doh!" things that is simultaneously completely obvious after the fact but not obvious on a cursory glance if you're not paying at...
文章浏览阅读727次。<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>加载效果</title> <style type="text/css"> * { padding: 0; margin: 0; } #progressbar { position: fixed; left: 0; right: 0;._js加载效果
文章浏览阅读4.1k次,点赞3次,收藏29次。作者 |陈熹来源| 早起Python今天本文将基于第三方库pptx,详细讲解如何使用Python操作Office全家桶最后一位——PPT。安装pptx是一个非标准库,需要在命令行中安..._python ai ppt
文章浏览阅读3.2k次,点赞22次,收藏24次。anaconda 安装dlib, 附带下载地址_在pytorch中虚拟环境中怎么安装dlip
文章浏览阅读1.1k次。在 setting.py 中设置完了 django-redis 之后,在 view.py 中使用出现 error:Error 111 connecting to 127.0.0.1:6379.-> 参考出现这个问题是因为服务器中的 redis sercive 没找到或者没开启如果没安装服务器的话,安装 redis-serverUbuntu: sudo apt-get in..._sentry.exceptions.invalidconfiguration: error 111 connecting to 127.0.0.1:63
文章浏览阅读164次。20' 抛物面,法向量 10' 抛物面 #define DELTA 0.1 #define PI2 2*3.14159 double parabolicSurf[36][10][3]; void MakeParabolicSurface() { for (int a = 0; a < 36; a++) { for (int ..._在自由端约束条件下计算hermite样条曲线
文章浏览阅读284次。8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?本文以CentOS系统为例,但同样适用于Linux的其他发行版。不需要纠结于具体的版本,了解设计意图即可。本文随时更新。除勘误外,不另做批注。圆型节点代指目录,方型节点代指文件。图中省去了很多不常用的目录与文件。稍后单独讲/proc目录与/var目录。Linux将整个文件系统看做一棵树,这棵树的树根叫做根文件系统,用”/..._查看/user/root/txtdir目录结构
文章浏览阅读3.4k次。写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32其中C表示摄氏温度,F表示华氏温度。程序的输入是一个整数,表示华氏温度。输出对应的摄氏温度,也是一个整数。提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式: (int)x;其中x是要转换的那个浮点数。输入格式:_android studio怎么将华氏温度转换为摄氏度