STL泛型编程原创入门.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STL泛型编程原创入门教程 ~~集训会教案 在讲STL之前 先普及下c++ 1:就是c的加强版,对我们算法竞赛而言,基本的提交语言都是c++的,因为 c++完全 兼容c。 文件的拓展后缀是 .cpp 。 2:头文件是 #include xxxxxxx 注意没有 .h 如果想用c的头文件就 是c stdio 不用.h 3:定义命名空间,每个程序都要在头文件下写上 using namespace std;是为了防止重名 4:基本输入输出是 iotream 用法是 cin a; cout a; 你们看看箭头就明白,前者是加入后者是抽出。 5:其余语法一模一样,还能使用STL的函数库, STL全称是Standard template library 简单的说,就是一堆库函数,各种奇妙的功能,带你装比带你飞。别人要用5行来实现的排序,你一句sort轻松ok,要正排正排,要逆序逆序。多种数据结构,别人写几十行实现代码,你轻松敲下 find 实现查找,push入栈,pop出栈。 STL使用c++编程。主要为13个头文件 Algorithm 算法库 deque 双端队列 Functional函数式编程Vector 不定长数组 list 列表 Map 映射 memory 内存方面 Numeric 基础性的数值算法 queue 队列 Set 集合 stack 栈 Utility 程序包 以上内容中,在acm中能用到的,是除了utulity 和memory 以外的,都是重点。 因为字符串也经常使用到,string 字符串容器我们也一样讲。 今天我们不可能把stl都讲完,所以我就 主要是来讲讲他的 一些最常用案例的使用。之后呢建议个位,把每一个头文件都重新学习一遍,不需要背下来,只要在关键时刻能想起来有这个,然后查查资料就ko了。 数据结构部分 数据结构,按理而言是要计科的孩纸学一年,物联网的孩纸学半年的。不过,咱们也不需要那么细致的学习,其实太多的知识是能用就行的,现在让我们用一节课来ko基础的数据结构。 数据结构是是什么呢,简单的理解就是数据如何的存储结构。我们之前学习过链表,那么实际上大多数的数据结构都是由链表来加以改装来实现, 首先是list 双向链表,这个熟悉吧! 一定要注意其实容器都是类似的,学好一个后面的就刷刷会了。 头文件是 #include list 定义是 list int l1; 构造一个int 类型的 l1的空链表 list int l1(3); 有三个元素,值都为0 list int l1(3,1),; 有三个元素,值都为1 我们可以对比的来上手,和数组对比,其实是一样的 Int a[100];这是在定义数组,同样是指定类型就可以了, 1:要找第一个元素怎么找呢: 数组 直接 a【0】; List l1.front() ; //注意括号一定要有,其实这是一个函数返回值是他的首元素 2:找最后一个元素, 数组 a【99】; List l1.back(); 3:访问中间元素,这个有点难度,要用指针, 首先我们要定义指针: Listint::iterator it ;这个形式记住就可以,容器类型::iterator it it = l1.begin(); 返回开始位置的指针 it = l1.end(); 返回结束位置的下一个位置的指针 如何添加和删除呢?? Cina; L1.push_front(a);添加一个a到链表头 L1.push_back(a);到尾 L1.Pop_front(); 删除一个头,无参数 L1.Pop_back(); 删除一个尾,无参数 L1.clear()删除所有。 L1.erase(it ,it+5);删除一个或者一个区域 L1.Remove(4)删除链表中所有的4 L1.Remove_if(某函数) 删除满足条件的数, L1.Size()返回元素个数 L1.Empty()判断是否空,空为真为true,否则为假false。 L1.Reverse()反转链表 L1.Sort() 正排序 L1.Sort(greaterint)逆排序 拿个题目练下,求次大值。和次小值。求全部的和。求长度。要求30行内实现。 #includeiostream #includelist #includenumeric using namespace std; int main() { listintl1; l

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档