C++学习笔记32:泛型编程拓展1
标准模板库的内容
- 标准模板类:复数、序偶
- 迭代器
- 标准容器:向量,表,栈,队列,集合,映射等
- 标准算法:查找,排序等
标准模板库型式的使用方法
- “<>”:模板名称<数据对象基型式>数据对象名称;
- 例子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的更多相关文章
- C++学习笔记34:泛型编程拓展3
输入流迭代器 #include <iostream> #include <iterator> #include <algorithm> #include <v ...
- C++学习笔记33:泛型编程拓展2
调用标准模板库的find()函数查找数组元素 例子: #include <iostream> #include <algorithm> using namespace std; ...
- Effective STL 学习笔记 32 ~ 33
Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...
- java WEB学习笔记32:HttpSession 接口常用方法 及 HttpServletRequest接口中的Session方法 Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Linux下汇编语言学习笔记32 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- C++学习笔记26:泛型编程概念
一.什么是泛型编程? 泛型就是通用的型式 编写不依赖数据对象型式的代码就是泛型编程 二.为什么需要泛型编程? 函数重载,相似类定义与型式兼容性 例如:设计函数,求两个数据对象的较小值 //未明确规定参 ...
- android学习笔记32——资源
Android应用资源 资源分类: 1.无法直接访问的原生资源,保存于asset目录下 2.可通过R资源清单类访问的资源,保存于res目录下 资源的类型以及存储方式 android要求在res目录下用 ...
- C语言实例解析精粹学习笔记——32
实例32: 编制一个包含姓名.地址.邮编和电话的通讯录输入和输出函数. 思路解析: 1.用结构体来完成姓名.地址.邮编和电话的组合. 2.结构体指针的使用. 3.malloc的使用 4.scanf函数 ...
- CUBRID学习笔记 32 对net的datatable的支持 cubrid教程
在net的驱动中实现理一下的支持 DataTable data populate Built-in commands construct: INSERT , UPDATE, DELETE Column ...
随机推荐
- yii2 配置文件加载顺序, 以及调用自定义配置信息。
在配置上一般有以下问题: 每个团队成员都会有自己的配置项,提交这样的配置项将会影响其他团队成员: 生产库密码和API密钥不应该出现在代码库中: 有多个服务器环境的情况:开发.测试.生产:每一种环境应该 ...
- JSON简单介绍
//JSON是一种数据格式//JSON比较像php里面的关联数组,它里面存的内容也是key和value成对存在的 JSON写法格式 var js = { "one":"h ...
- Windows Server 2012 中80端口被PID为4的系统进程占用解决方法
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP 把"start" 的值改成4.
- python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记
今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...
- what is service?
SERVICE n.服务,服侍:服务业:维修服务:服役 vt.检修,维修:向…提供服务:保养:满足需要 adj.服务性的:耐用的:服现役的 更多详情:http://dict.baidu.com/s?w ...
- linux下错误的捕获:errno和strerror的使用
经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因.这个时候使用 ...
- MFC-01-Chapter01:Hello,MFC---1.3 第一个MFC程序(02)
1.3.1 应用程序对象 MFC应用程序的核心就是基于CWinApp类的应用程序对象,CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口.当包含头文件<afxwin.h>, ...
- 一般处理程序获取WEB窗体创建的验证码需要实现session相关接口
如下: using System.Web.SessionState; using ASPNETAJAXWeb.ValidateCode.Page; public class CheckLogin : ...
- DataTable 删除列 调整列顺序 修改列标题名称
DataTable dt = new DataTable(); //删除列 dt.Columns.Remove("Sex"); dt.Columns.Remove("Ag ...
- 添加网络打印机的步骤(xp和win2008)
1.如题,设置好打印机去的ip地址和子网掩码等信息. 2 .xp不像其他新的系统那么好用那么智能...只能慢慢来 如果是xp,注意,请添加网络打印机的时候选 :添加本地打印机,,记得哦 然后如图 然 ...