STL与泛型编程-练习2-GeekBand】的更多相关文章

在C++语法的学习过程中,我们已经对模板有了基本的了解.泛型编程就是以模板为工具的.泛化的编程思想.本篇文章介绍了一些在之前的文章中没有涉及到的一些模板知识.泛型编程知识和几种容器.关于模板的一些重复知识在这里就不再进行赘述. 一.关于模板的知识点补充   1. 函数模板的参数推导与显式指定 通常情况下,我们一般采用参数的自动推导方式去使用函数模板.在自动推导时,为了确保推导的正确性,C++不允许任何形式的隐式类型转换. 这个限制就导致了如下的情况: template <class T> in…
本篇文章在上一篇文章的基础上进一步介绍一些常用的容器以及STL的一些深入知识. 一. Stack和Queue 栈和队列是非常常用的两种数据结构,由deque适配而来.关于数据结构的知识这里就不在介绍了,仅介绍STL中的成员方法. stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素.访问栈顶,如例:s.top()判断栈空,如例:s.empty(),当栈空时,返回true.访问栈中的元素个数,如例:s.size().…
本篇文章主要介绍泛型算法中的变易.排序.数值算法. 一. 变易算法 所谓变易算法是指那些改变容器中的对象的操作. 1.1 copy组 template <class InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result); Copy操作是将两个输入迭代器之间的元素拷贝到输出迭代器处.注意拷贝时采用的是左对齐,…
1, 模板观念与函数模板 简单模板: template< typename T > T Function( T a, T b) {- } 类模板: template struct Object{---.}; 函数模板 template< class T> inline T Function( T a, T b){--} 不可以使用不同型别的参数来调用函数模板 可以使用class代替typename. 但不能使用struct代替typename 使用具体类型代替模板参数T叫实例化,…
part 1 C++模版简介 一,模版概观 1.模板 (Templates)是C++的一种特性,允许函数或类(对象)通过泛型(generic types)的形式表现或运行. 模板可以使得函数或类在对应不同的型别(types) 的时候正常工作,而无需为 每一个型别都写一份代码. 2.C++主要有两种类型的模板: (1)类模板(Class template): 使用泛型参数的类(classes with generic parameters) (2)函数模板(Function template):…
练习题目: struct Programmer{ Programmer(const int id, const std::wstring name): Id(id), Name(name){ } void Print() const { std::wcout<<L"["<<Id<<L"]: "<<Name<<std::endl; } int Id; std::wstring Name; }; //2, 定义…
9, 容器 Deque 双向队列 和vector类似, 新增加: push_front 在头部插入一个元素 pop_front 在头部弹出一个元素 Deque和vector内存管理不同: 大块分配内存 Stack 先进后出结构 只有一个出口 只能访问顶端元素, 不允许遍历 支持操作: push增加元素 pop移除元素 top获取顶端元素 实际底层使用Deque实现, 但也可以实际制定容器Container Queue 先进先出结构, 两个出口 不允许遍历 支持操作: push增加元素 pop移除…
/* 题目: 给定一个 vector:v1 = [0, 0, 30, 20, 0, 0, 0, 0, 10, 0],希望通过not_equal_to 算法找到到不为零的元素,并复制到另一个 vector: v2 */ int _tmain(int argc, _TCHAR* argv[]) { vector<int> v1; v1.push_back(0); v1.push_back(0); v1.push_back(30); v1.push_back(20); v1.push_back(0)…
学习过C++的朋友们应该对STL和泛型编程这两个名词不会陌生.两者之间的关系不言而喻,泛型编程的思想促使了STL的诞生,而STL则很好地体现了泛型编程这种思想.这次想简单说一下STL在ACM中的一些应用.我们知道,在ACM竞赛中,经常需要用到数组.字符串.队列.堆栈.链表等数据结构和排序.搜索等算法,以提高程序的时间.空间运行效率.然而如果这些数据结构总是需要手工来编写,那无疑会是一件很麻烦的工作,而STL的出现很好地解决了这个问题. 我们简单来了解一下STL.STL提供了三种类型的组件:容器.…
2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL>,这本书由STL开发者 Matthew H.Austern编著,由STL之父alexander Stepanov等大师审核的,介绍STL思想及其使用技巧,适合初学者使用,中文版是由侯捷翻译的: 另一本书是<STL源码剖析>,是<深入浅出MFC>的作者侯捷编写的,介绍STL源代码的…