快速业务通道

STL学习系列之三:操作list容器

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29

学习完了STL系列之二,自己写了个程序练手!程序采用的还是系列之二文章的架构。学习了STL之一和之二,对于STL的基本原理算有个个基本的了解。其实关于这几种容器,以前也都接触过,不过是在java上,当时学习时也是囫囵吞枣!现在感觉那真是学习之大忌,还是一步一个脚印为好。速度可以放慢点,那要扎实!

注意:程序在vc6下调试通过,对于不清楚如何在vc下运行STL者,可以读STL系列之一。

//TjuAiLab
//Author:zhangbufeng
//Time:2005.8.23 22:00
#include <string>
#include <list>
#include <iostream>
#include <algorithm>
using namespace std;

PrintString(const string& StringToPrint);
const string NameCode("Bufeng");
class IsBufeng
{
public:
bool operator()(string &StringName)
{
 return StringName.substr(0,6)==NameCode;
}
};
void main(void)
{
//定义一个list
list<string>AIStudentName;
list<string>TargetAIStudentName;
list<string>::iterator AIStudentNameIterator;
//使用的list的成员函数push_back和puch_front插入元素到list中,使用成员函数insert任意插入
  AIStudentName.push_back("BufengZhang");
AIStudentName.push_back("YangZhang");
AIStudentName.push_back("KunHuang");
AIStudentName.push_front("ChengLuo");
AIStudentName.push_front("YonghuoYang");
AIStudentName.push_front("XiaoyuanCui");
AIStudentName.insert(AIStudentName.end(),"KefeiGong");
TargetAIStudentName.push_back("BufengZhang");
TargetAIStudentName.push_back("YangZhang");
//使用list的成员函数empty判断list是否为空,size来返回成员个数
if(AIStudentName.empty())
{
 cout<<"AIStudentName的成员为空"<<endl;
}
else
{
 cout<<"AIStudentName的成员个数为"<<AIStudentName.size()<<endl;
}
//使用for循环和迭代器处理list的元素
cout<<"AIStudentName的成员如下(使用for循环和迭代器:"<<endl;
for(AIStudentNameIterator=AIStudentName.begin();AIStudentNameIterator!=AIStudentName.end();
   AIStudentNameIterator++)
 {
 cout<<*AIStudentNameIterator<<endl;
 }
  //使用STL的通用算法for_each来处理list中的元素
cout<<"AIStudentName的成员如下(使用STL的通用算法for_each:"<<endl;
for_each(AIStudentName.begin(),AIStudentName.end(),PrintString);
//学习使用STL的通用算法count和count_if
int NumberofStudent=0;
NumberofStudent=count (AIStudentName.begin(),AIStudentName.end(),"BufengZhang");
cout<<"TjuAIlab中有"<<NumberofStudent<<"个BufengZhang"<<endl;
NumberofStudent=count_if(AIStudentName.begin(),AIStudentName.end(),IsBufeng());
cout<<"TjuAIlab中有"<<NumberofStudent<<"个BufengZhang"<<endl;
  //使用STL通用算法find()在list中查找对象
AIStudentNameIterator=find(AIStudentName.begin(),AIStudentName.end(),"BufengZhang");
if(AIStudentNameIterator==AIStudentName.end())
 cout<<"AIStudentName中没有BufengZhang"<<endl;
else
 cout<<"在AIStudentName中可以找到BufengZhang"<<endl

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号