工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
一步一步学习STL标准模板库
[文章信息]
作者:江上飞鸟
时间:2005-02-06
出处:vckbase
责任编辑:方舟
[文章导读]
在使用list必须包括头文件
advertisement
热点推荐
· Linux上搭建C/C++IDE开发环境
· Excel的“完全抄袭”粘贴技巧
· 豪杰发布超级解霸v9测试版
· Win 2000中“隐形”的武器(下)
· 做黑客?用IE就行
[正文]
  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 FindIterator
FindIterator = 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的结尾的iterator
newEnd = cList.remove(cList.begin(), cList.end(), ‘c’);

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Visual C+6.0实现文本串的自由拆分
  • 利用Visual C++开发ASP图像处理组件
  • MFC程序员的WTL指南之工具条与状态条
  • Visual C++初学者指针学习指南
  • 使用VC++ ATL实现Office的COM插件
  • 手机牌照唱空城计 两股新势力搅动国内手机业
  • 数码相机价格下降10% 成年节市场礼品新宠
  • 神奇魔镜照出未来模样 样机今年夏天将面世
  • 专利商制造商对垒 飞利浦低调答辩DVD起诉
  • 手机衍生品 将五角大楼的技术用到耳机上去
  • 观潮:国际化趋势对我国ERP产业发展的影响
  • 德先科技诉索尼背后 电池市场暗战行业标准
  • Siebel Systems发布2004年第4季度财务报告
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索