STL标准模板类库-LIST的使用

来源:互联网 发布:淘宝哪些店卖正品万斯 编辑:程序博客网 时间:2024/06/06 07:21
list 的使用

在使用list必须包括头文件#include <list>,
1)、如何定义一个list对象
#include <list>int main (void){list<char > cList; //声明了list<char>模板类 的一个实例}
2)、使用list的成员函数push_back和push_front插入一个元素到list中
cList. push_back(‘a’); //把一个对象放到一个list的后面cList. push_front (‘b’); //把一个对象放到一个list的前面
3)、使用list的成员函数empty()判断list是否为空
if (cList.empty()){printf(“this list is empty”);}
4)、用list< char >::iterator得到指向list的指针
list< char>::iterator charIterator;for(cIterator = cList.Begin();cIterator != cList.end();cIterator++){printf(“%c”, *cIterator);} //输出list中的所有对象
说明:cList.Begin()和cList.end()函数返回指向list< char >::iterator的指针,由于list采用链表结构,因此它不支持随机存取,因此不能用cList.begin()+3来指向list中的第四个对象,vector和deque支持随机存取。

5)、用STL的通用算法count()来统计list中的元素个数
int cNum;char ch = ’b’;cNum = count(cList.Begin(), cList.end(), ch); //统计list中的字符b的个数
说明:在使用count()函数之前必须加入#include <algorithm>

6)、用STL的通用算法count_if ()来统计list中的元素个数
const char c(‘c’);class IsC{public:bool operator() ( char& ch ){return ch== c;}};int numC;numC = count_if (cList.begin(), cList.end(),IsC());//统计c的数量;
说明:count_if() 带一个函数对象的参数,函数对象是一个至少带有一个operator()方法的类函数对象被约定为STL算法调用operator时返回true或false。它们根据这个来判定这个函数。举个例子会 说的更清楚些。count_if()通过传递一个函数对象来作出比count()更加复杂的评估以确定一个对象是否应该被记数。

7)、使用STL通用算法find()在list中查找对象
list<char >::iterator FindIterator;FindIterator = find(cList.begin(), cList.end(), ‘c’);If (FindIterator == cList.end()){printf(“not find the char ‘c’!”);}else{printf(“%c”, * FindIterator);}
说明:如果没有找到指定的对象,就会返回cList.end()的值,找到了就返回一个指向对象iterator的指针。

8)、使用STL通用算法find_if()在list中查找对象
const char c(‘c’);class c{public:bool operator() ( char& ch ){return ch== c;}};list<char>::iterator FindIteratorFindIterator = find_if (cList.begin(), cList.end(),IsC());//查找字符串c;
说明:如果没有找到指定的对象,就会返回cList.end()的值,找到了就返回一个指向对象iterator的指针。

9)、使用list的成员函数sort()排序
cList.sort();
10)、使用list的成员函数insert插入一个对象到list中
cList.insert(cLiset.end, ‘c’); ///在list末尾插入字符‘c’char ch[3] ={‘a’, ‘b’, ‘c’};cList.insert(cList.end, &ch[0], & ch[3] ); //插入三个字符到list中
说明:insert()函数把一个或多个元素插入到指出的iterator位置。元素将出现在 iterator指出的位置以前。

11)、如何在list中删除元素
cList.pop_front(); //删除第一个元素cList.pop_back(); //删除最后一个元素cList. Erase(cList.begin()); //使用iterator删除第一个元素;cList. Erase(cList.begin(), cList.End()); //使用iterator删除所有元素;cList.remove(‘c’); //使用remove函数删除指定的对象;list<char>::iterator newEnd;//删除所有的’c’ ,并返回指向新的list的结尾的iteratornewEnd = cList.remove(cList.begin(), cList.end(), ‘c’);  


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1359700

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 万达广场购物卡怎么办 京东白条没额度怎么办 京东退款还收到货怎么办 退货不想要货了怎么办 安装微擎创建数据库失败怎么办 tp文件损坏或丢失怎么办 手机QQ启动有问题应该怎么办 微信网页版页面巨大怎么办 魔兽军团烹饪食谱扔了怎么办 赴港旅游网上签证怎么办了? 美团商家入住没有营业执照怎么办 团购房子不想要怎么办 乐视液晶屏坏了怎么办 wifi盒子插上网线然后怎么办 在泰国手机坏了怎么办 朋友在泰国手机关机怎么办 qq上转账转错了怎么办 扣扣转账转错了怎么办 到付快递签收了怎么办 京东白条消费了怎么办 确认收货点错了怎么办 小米6后盖缝隙大怎么办 苹果6splus电池不耐用怎么办 苹果一朵云加箭头下载不了怎么办 苹果8p信号不好怎么办 苹果8p像素不好怎么办 美版iphonex有锁怎么办 苹果8x突然黑屏怎么办 苹果6s无法激活怎么办 苹果6sp激活出错怎么办 小米4c触屏失灵怎么办 手机谷歌浏览器为什么打不开怎么办 谷歌浏览器打不开网址怎么办 拼多多被限制了怎么办 保时捷11年的前机盖打不开怎么办 唯品会衣服质量有问题怎么办 唯品会买的东西有质量问题怎么办 唯品会上卖到假东西怎么办 个人资金链断了怎么办 腾讯财理通平台倒闭投资者该怎么办 ebay买到假货了怎么办