磨刀霍霍向STL::distance
平时无所事事,无聊中就把STL的代码翻出来看,看到部分代码时就突然有了这个想法,其实这只能算个娱乐项目(可能我是极端份子或者可能是变态),如果你现在也无聊,那不妨也来和我变态一把,嘿嘿
这里说的STL其实是SGI STL,下面所有的STL字样都是指的SGI STL,我的STL代码其实就是Dev-C++里面带的。好了废话也差不多说完了,现在正式开始,请把刀拿好,上STL
首先来看看 STL中的distance实现(目录就是%include%/c++/bits/stl_iterator_base_funcs.h)
template<typename _InputIterator>
inline typename iterator_traits<_InputIterator>::difference_type
__distance(_InputIterator __first, _InputIterator __last, input_iterator_tag)
{
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
typename iterator_traits<_InputIterator>::difference_type __n = 0;
while (__first != __last) {
++__first; ++__n;
}
return __n;
}
template<
磨刀霍霍向STL::distance相关推荐
- 关于C++ STL 中advance()、 distance() 、begin()、end()、prev()、next() 函数的使用
1.advance():用于将迭代器前进(或者后退)指定长度的距离 #include <iostream> // std::cout #include <iterator> / ...
- 【STL学习指南】STL的入门学习指南
目录 STL 学习指南 一. STL基础 二. C++ STL 容器 1 序列式容器 1.1 array 1.2 vector 1.3 deque 1.4 list 2 关联式容器 2.1 map 2 ...
- C++ STL begin()和end()函数(深入了解,一文学会)
C++ STL标准库提供的所有容器做了系统的讲解.无论是序列式容器还是关联式容器(包括哈希容器),不仅模板类内部提供有 begin() 和 end() 成员方法,C++ STL 标准库中还提供有同名且 ...
- C++ STL map emplace()和emplace_hint()(深入了解,一文学会)
C++ STL Map模板类中除了 insert() 方法 还提供了 emplace() 和 emplace_hint() 成员函数,也可以实现向 map 容器中插入新的键值对.本节就来讲解这 2 个 ...
- C++ STL advance()函数(深入了解,一文学会)
advance() 函数用于将迭代器前进(或者后退)指定长度的距离. template <class InputIterator, class Distance> void adv ...
- C++ 笔记(23)— STL vector 类(实例化 vector、末尾插入、指定位置插入、数组方式访问元素、指针方式访问元素、删除元素、大小与容量区别)
1. vector 特点 vector 是一个模板类,提供了动态数组的通用功能,具有如下特点: 在数组末尾添加元素所需的时间是固定的,即在末尾插入元素的所需时间不随数组大小而异,在末尾删除元素也如此: ...
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- C++拾取——使用stl标准库实现排序算法及评测
今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...
- Effective STL 50条有效使用STL的经验笔记
Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...
最新文章
- 查找内存泄漏的一个思路
- linux virtualhost不能正常运行,造成网站无法正常运行的4个原因!
- 统计分组的原则是要体现什么_跨境选品有哪些方法,要遵循什么原则?
- mysql 怎么查询慢sql语句_如何优化MySQL中查询慢的SQL语句啊?
- tar包zip的拆分与合并
- Java import javax.servlet 出错
- 关于第十届省赛失败的总结
- 集线器(hub),交换机以及路由器异同;冲突域和广播域详解
- 开发微信小程序需要服务器吗?
- 计算机桌面如何整理,怎么整理电脑桌面
- SELECT数据查询例题4——分组查询
- javascript中ready和onload的理解
- 网络安全应急响应----8、网页篡改应急响应
- 【FFmpeg编码实战】(2)将YUV420P图片集编码成H.264视频文件(方法二)
- 摄像头识别黑烟加框处理(测试)
- cesium中实现鼠标拖动实体功能
- 韩国电力供应商利用区块链构建生态友好型微电网
- python常用小脚本总结
- 【Android Studio】关于cvc-complex-type.2.4.a: ‘base-extension‘ {layoutlib} 正确解法
- 蓝汛之5376脚位图