标准模板库的内容

  • 标准模板类:复数、序偶
  • 迭代器
  • 标准容器:向量,表,栈,队列,集合,映射等
  • 标准算法:查找,排序等

标准模板库型式的使用方法

  • “<>”:模板名称<数据对象基型式>数据对象名称;
  • 例子1:complex<double>a(1.0,2.0);
  • 例子2:pair<string,string>name("zhang","san");(序偶)
  • 例子3:vector<int>v(8);

复数

一般说明

  • 头文件:“complex”
  • 模板名:complex<>
  • 基型式:float,double,long double
  • 首选double,float精度低,long double 已弃用

实部与虚部

  成员函数real()和imag()

复数操作

  复数全部操作均为可以按照数学格式进行

  cout,cin,均已重载;格式为(real,imag)

序偶

一般说明

  • 头文件:“utility”
  • 模板名:pair<>
  • 用于表示总是成对出现的两个对象
  • 例子1:pair<int,double>a(1,1.0);
  • 例子2:pair<string,string>name("zhang","san");

使用规则

  • 公开的数据成员:first,second
  • 例子:cout << name.first << "," << name.second;
  • 序偶比较:先比较first大小,相同时比较second大小
  • make_pair:构造序偶的辅助函数
  • 例子:pair<int,double> a; a = make_pair(1,1.0);

向量

向量的目的

替代数组,可以像数组一样使用向量

向量的使用

  • 定义格式:vector<int> v(8);//包含8个整数的元素
  • operator[]:已重载,使用格式v[i]访问第i个元素
  • 向量可以整体赋值
  • size():返回向量中元素的数目
  • capacity:返回向量当前可存储的最多元素数目
  • clear():删除向量所有的元素,但不释放向量本身
  • resize(int newsize):重新设置向量容量

迭代器

迭代器的性质

  • 通过迭代器访问容器中的数据对象
  • 类似指针,数组索引的功能:通过指针加减与数组下标运算获得下一数据对象
  • 迭代器可以是指针,但并不必须是指针,也不必总是使用数据对象的地址

迭代器的使用方法

  • 声明迭代器变量
  • 使用引领操作符访问迭代器指向的当前目标对象
  • 使用递增操作符获得下一对象的访问权
  • 若迭代器新值超出容器的元素范围,类似指针值变成NULL,目标对象不可引用

迭代器的分类

  • 输入迭代器:提供对象的只读访问
  • 输出迭代器:提供对象的只写访问
  • 前向迭代器:提供对象的正向(递增)读写访问
  • 双向迭代器:提供对象的正向与反向(递增与递减)读写访问
  • 随机访问迭代器:提供对象的随机读写访问

C++学习笔记32:泛型编程拓展1的更多相关文章

  1. C++学习笔记34:泛型编程拓展3

    输入流迭代器 #include <iostream> #include <iterator> #include <algorithm> #include <v ...

  2. C++学习笔记33:泛型编程拓展2

    调用标准模板库的find()函数查找数组元素 例子: #include <iostream> #include <algorithm> using namespace std; ...

  3. Effective STL 学习笔记 32 ~ 33

    Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  4. java WEB学习笔记32:HttpSession 接口常用方法 及 HttpServletRequest接口中的Session方法 Demo

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. Linux下汇编语言学习笔记32 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. C++学习笔记26:泛型编程概念

    一.什么是泛型编程? 泛型就是通用的型式 编写不依赖数据对象型式的代码就是泛型编程 二.为什么需要泛型编程? 函数重载,相似类定义与型式兼容性 例如:设计函数,求两个数据对象的较小值 //未明确规定参 ...

  7. android学习笔记32——资源

    Android应用资源 资源分类: 1.无法直接访问的原生资源,保存于asset目录下 2.可通过R资源清单类访问的资源,保存于res目录下 资源的类型以及存储方式 android要求在res目录下用 ...

  8. C语言实例解析精粹学习笔记——32

    实例32: 编制一个包含姓名.地址.邮编和电话的通讯录输入和输出函数. 思路解析: 1.用结构体来完成姓名.地址.邮编和电话的组合. 2.结构体指针的使用. 3.malloc的使用 4.scanf函数 ...

  9. CUBRID学习笔记 32 对net的datatable的支持 cubrid教程

    在net的驱动中实现理一下的支持 DataTable data populate Built-in commands construct: INSERT , UPDATE, DELETE Column ...

随机推荐

  1. canvas学习笔记:canvas对图片的像素级处理--ImageData的应用

    学习了canvas的基本绘图功能后,惊喜的发现canvas对图片数据也有相当强大的处理功能,能够从像素级别操作位图,当然[lte ie8]不支持. 主要的函数有三个: ctx.createImageD ...

  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) E. Goods transportation (非官方贪心解法)

    题目链接:http://codeforces.com/contest/724/problem/E 题目大意: 有n个城市,每个城市有pi件商品,最多能出售si件商品,对于任意一队城市i,j,其中i&l ...

  3. python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记

    今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...

  4. Fragment的onResume

    需求:Fragment每次由不可见到可见时的回调. 可能最先想到的是onResume方法,实际使用中Fragment的onResume调用时机与其Activity一致,因此类似与viewPager搭配 ...

  5. Scala编程--基本类型和操作

    如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方 ...

  6. 源码编译安装 MySQL 5.5.x 实践

    1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...

  7. split拆分数组长度问题

    package test; public class test1_format { public static void main(String[] args) { System.out.printl ...

  8. 记录Js

    1.对于js,没有系统的学习.有要经常的用到,每次都是百度查找,为了以后能查询. (1). $(function () { $('.restbtn').on("click", fu ...

  9. iOS学习之SKTagView的使用

    SKTagView是一款支持自动布局的标签tag. 特性: -流式展示标签 -可以配置标签的颜色.事件.间隔.外边距等 -支持Auto layout -可以在UITableViewCell中良好展示 ...

  10. WebGL中添加天空盒的两种方法

    天空盒 的添加可以让模型所在的场景非常漂亮,而其原理也是非常简单的,相信看完下面代码就可以明白了. 说到天空盒的两种方法,倒不如说是两种写法,分别用了纹理加载的两个方法:loadTexture和loa ...