码迷,mamicode.com
首页 > 其他好文 > 详细

CPP strings 与标准模板库

时间:2018-07-20 15:56:42      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:开发   处理   面向   完成   方法   and   scores   code   gre   

Leetcode 838 push dominos 解体思路

STL标准模板库

提供了一组表示容器、迭代器、函数对象和算法的模板。 Alex Stepanov & Meng Lee 一起开发了STL, 1994年第一版发布。STL不是面向对象的编程,而是一种不同的编程模式---泛型编程(generic programming)。 前者关注的是编程的数据方面,后者关注的是算法。共同特点是抽象与创建可重用代码,但理念决然不同。

容器

所有的STL容器都提供了一些基本方法,包括size(), swap, begin, end:后面两个返回指向容器的第一个与尾部的迭代器(一种广义指针)。 每一个容器类都定义了一个合适的迭代器,该迭代器的类型是一个名为iterator的typedef. 比如:
vector::iterator pd = scores.begin();
C++ 11的自动推断也可以用在这里:
auto pd = scores.begin();

几个有意思的操作

for_each() / random_shuffle() / sort() .
random_shuffle(books.begin(), books.end()) 随机排列区间中的元素。

泛型编程

泛型编程旨在编写独立与数据类型的代码, CPP中完成通用程序的工具是模板。模板使得算法独立于存储的数据类型,而迭代器使得算法独立于使用的容器类型。理解迭代器是理解STL的关键所在。
作为一种编程风格,最好避免直接使用迭代器,而尽可能使用STL函数(e.g., for_each)来处理细节。

CPP strings 与标准模板库

标签:开发   处理   面向   完成   方法   and   scores   code   gre   

原文地址:https://www.cnblogs.com/not-found-404/p/9341790.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!