ACM程序设计报告

ACM程序设计报告

- -王浩 14级计算机4

 

通过十六周的acm程序设计实习,感受颇深,acm不仅仅是对编程能力的锻炼,更是对逻辑思维能力的提升。从第一专题到第四专题,stl,贪心算法,搜索,背包,动态规划,图论,最小生成树等等,这些知识都是之前在各门课中接触到过的,但是在acm中,我对算法有了一个新的认识,也对之前学的知识有了更深入的认识。

acm的认识是从大一开始的,当时在东校的时候也是到本部参加了一段时间的acm程序设计课,当时接触的东西比较少,而且是光学了C语言,对程序设计的理解非常浅显,平时最常干的事就是做openjudge,后来参加了acm课,讲的堆栈,stl什么的,就感觉非常难于理解,寒假的刷题也没有坚持下来,然后就浑浑噩噩了一段时间,开学就没有继续上课。后台转了专业,又选了acm,才算是开始真正对acm的学习。

然后总结一下一个学期acm的学习吧,以及一些做题的感悟:

 

stl标准模板库:

STL标准模板库(英文:Standard Template Library,缩写:STL),是一个C++软件库,也是C++标准程序库的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。这是在维基百科中的解释。当时学习stl的做了一部分笔记,stla题的时候用处还是比较多的。简单总结一下吧,stl中有六大容器:

容器(Container),是一种数据结构,如listvector,和deques ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;

迭代器(Iterator),提供了访问容器中对象的方法。例如,可以使用一对迭代器指定listvector中的一定范围的对象。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器也可以是那些定义了operator*()以及其他类似于指针的操作符地方法的类对象;

算法(Algorithm),是用来操作容器中的数据的模板函数。例如,STLsort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象,函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用;

仿函数(Function object,仿函数(functor)又称之为函数对象(function object),其实就是重载了()操作符的struct,没有什么特别的地方

迭代适配器(Adaptor

空间配制器(allocator)其中主要工作包括两部分1.对象的创建与销毁    2.内存的获取与释放。

acm

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值