Accelerated C++ 第八章潦草笔记
来源:互联网 发布:手机淘宝回收站在哪里 编辑:程序博客网 时间:2024/05/01 13:48
1.max函数为什么不能输入两个不同类型的参数:
因为max函数模板定义中对两个参数都用了同一个类,那么当函数接受到两个不同类型的参数时,编译器便会不知道哪个参数作为目前的类型来实例化,所以就会报错。
推测其他设计比较的泛型函数之所以可以可以比较两个不同类型的参数,是因为这个函数在定义时分别为两个参数用了不同的类,并且比较操作是可以作用在不同类型上的;
2.迭代器类型
1.输入迭代器
2.输出迭代器
3.前向迭代器
4.双向迭代器
5.随机访问迭代器
其实标准库容器都支持前4种,那为什么4中不合并呢?
因为迭代器不仅可以用在标准库容器上,也可以用在其它非标准库的东西上,例如流,也有自己的流迭代器,定义在中,还有像back_insert(c)函数他生成的是一个输出迭代器。
3.为什么c.end()是指向最后一个元素的下一位置。
因为这虽然有点奇怪,但却可以简化程序。
例如,这符合半开区间的表示。并且可以表示一个区间之外的值来作为表示查找失败的返回值。
还可以通过目前的迭代器与其作比较来判断是否空区间。表示空区间非常方便。
4.利用迭代器直接复制到输出上,不用打循环了。
copy(v.begin(),v.end(),ostream_iterator(cout,” “);
便可以直接把v中的元素,每个有空格地输出到标准输出上。
同时,也要告诉标准输出输出的是什么类型的值。
在cout<< x;中,可以有x的类型来知道输出是什么类型,而在copy中,则要显示告诉标准输出输出什么类型的值。
5.使用输出迭代器可以更好地改进之前的split 函数
阅读全文
0 0
- Accelerated C++ 第八章潦草笔记
- 《Accelerated C++》 笔记摘录
- 《Accelerated C++》前面部分笔记
- 《accelerated c++》---------第六章
- accelerated c++ 读书笔记--第八章
- 【第八章—第十一章】【初识C++ Accelerated C++ 学习笔记】
- Accelerated C++笔记 10章
- “Accelerated C++” 阅读笔记(一)
- “Accelerated C++” 阅读笔记(二)
- “Accelerated C++” 阅读笔记(三)
- “Accelerated C++” 阅读笔记(四)
- 《accelerated c++》第九章---设计类
- Accelerated C++笔记 第6章
- Accelerated C++笔记 7-8章
- c primer Plus第八章笔记
- 《Objective-C基础教程》学习笔记第八章
- 【笔记】C与指针 第八章 数组
- C和指针第八章笔记
- 让专业变成兴趣之Linux系统运维
- 《TCP/IP详解 卷1》 笔记: IP选路
- Android之广播详解
- Android studio 导入项目出现:Failed to crunch file
- LeetCode基础--二叉树-判断两个树是否相同
- Accelerated C++ 第八章潦草笔记
- PHP操作Redis增删改查详细过程
- mongo groupby 并获取数组里拥有某个属性最大值的对象
- Nginx——9
- html object标签播放视频(非H5)以及后台提供视频播放地址接口
- 机器学习sklearn19.0——梯度下降算法
- 函数指针
- iOS 搜索页面完美布局
- centos上更新Python版本