平时无所事事,无聊中就把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相关推荐

  1. 关于C++ STL 中advance()、 distance() 、begin()、end()、prev()、next() 函数的使用

    1.advance():用于将迭代器前进(或者后退)指定长度的距离 #include <iostream> // std::cout #include <iterator> / ...

  2. 【STL学习指南】STL的入门学习指南

    目录 STL 学习指南 一. STL基础 二. C++ STL 容器 1 序列式容器 1.1 array 1.2 vector 1.3 deque 1.4 list 2 关联式容器 2.1 map 2 ...

  3. C++ STL begin()和end()函数(深入了解,一文学会)

    C++ STL标准库提供的所有容器做了系统的讲解.无论是序列式容器还是关联式容器(包括哈希容器),不仅模板类内部提供有 begin() 和 end() 成员方法,C++ STL 标准库中还提供有同名且 ...

  4. C++ STL map emplace()和emplace_hint()(深入了解,一文学会)

    C++ STL Map模板类中除了 insert() 方法 还提供了 emplace() 和 emplace_hint() 成员函数,也可以实现向 map 容器中插入新的键值对.本节就来讲解这 2 个 ...

  5. C++ STL advance()函数(深入了解,一文学会)

    advance() 函数用于将迭代器前进(或者后退)指定长度的距离. template <class InputIterator, class Distance>     void adv ...

  6. C++ 笔记(23)— STL vector 类(实例化 vector、末尾插入、指定位置插入、数组方式访问元素、指针方式访问元素、删除元素、大小与容量区别)

    1. vector 特点 vector 是一个模板类,提供了动态数组的通用功能,具有如下特点: 在数组末尾添加元素所需的时间是固定的,即在末尾插入元素的所需时间不随数组大小而异,在末尾删除元素也如此: ...

  7. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  8. C++拾取——使用stl标准库实现排序算法及评测

    今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...

  9. Effective STL 50条有效使用STL的经验笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

最新文章

  1. 查找内存泄漏的一个思路
  2. linux virtualhost不能正常运行,造成网站无法正常运行的4个原因!
  3. 统计分组的原则是要体现什么_跨境选品有哪些方法,要遵循什么原则?
  4. mysql 怎么查询慢sql语句_如何优化MySQL中查询慢的SQL语句啊?
  5. tar包zip的拆分与合并
  6. Java import javax.servlet 出错
  7. 关于第十届省赛失败的总结
  8. 集线器(hub),交换机以及路由器异同;冲突域和广播域详解
  9. 开发微信小程序需要服务器吗?
  10. 计算机桌面如何整理,怎么整理电脑桌面
  11. SELECT数据查询例题4——分组查询
  12. javascript中ready和onload的理解
  13. 网络安全应急响应----8、网页篡改应急响应
  14. 【FFmpeg编码实战】(2)将YUV420P图片集编码成H.264视频文件(方法二)
  15. 摄像头识别黑烟加框处理(测试)
  16. cesium中实现鼠标拖动实体功能
  17. 韩国电力供应商利用区块链构建生态友好型微电网
  18. python常用小脚本总结
  19. 【Android Studio】关于cvc-complex-type.2.4.a: ‘base-extension‘ {layoutlib} 正确解法
  20. 蓝汛之5376脚位图

热门文章

  1. Hive优化【提高效率,减少资源浪费等】
  2. java8新特性之Lambda流常用表达式的方法合集
  3. 【Vue3】创建Vue3.0脚手架工程的解决方法(图文)
  4. 一键分享到QQ空间、QQ好友、新浪微博、微信代码
  5. sourcemonitor的具体使用教程
  6. 没有core的程序异常退出追查过程
  7. 一款效率神器Ditto
  8. 5G SA与NSA上行速率大对比!未来单模5G手机可能有网没信号?
  9. 【报告分享】中视频2021发展趋势报告-西瓜视频(附下载)
  10. 企业工商信息查询标准版API开发文档