平时无所事事,无聊中就把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. Xbox One 初始化-2 激活(百视通)和配置账户
  2. linux下配置 ITK
  3. 长沙理工大学计算机系教师,长沙理工大学数学与计算机科学学院导师介绍:王晚生...
  4. NFS为lamp提供共享存储实践
  5. 时光已荏苒,我还怎么让你遇见最美年华里的我
  6. JAVA刷TNT_Java Blocks.tnt方法代码示例
  7. Mysql学习笔记(七)查(补充)
  8. c语言浮点乘法 溢出,浮点加减乘除运算各在什么情况下会发生溢出?
  9. RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)
  10. Azure Virtual Network, 虚拟网络
  11. Homework2-project review score of each team
  12. hihocoder第233周
  13. 基金销售系统和TA系统
  14. android dpi 修改,DPI修改
  15. spring cloud SnakeYAML RCE复现
  16. chrome清除缓存快捷键
  17. IE提示:无法打开匿名级安全令牌
  18. 领导人要读的10本管理学书籍
  19. Android Studio:基本UI界面设计 (详细)
  20. Google地图切片TMS格式,本地使用

热门文章

  1. [hiho 07]完全背包
  2. JQUERY实时监听INPUT输入值
  3. 基础口语提高口语能力
  4. Android Studio中Android Device Monitor的file explorer不显示问题
  5. python 根据jinjia模板写excle
  6. 9-2、gets和puts
  7. 在conda环境中更新pycocotools出现的required to install pyproject. toml-based projects报错解决方案!
  8. 前端使用自定义图标作为鼠标光标
  9. 28岁的程序员,目前考虑转行,但又不知道自己能干什么
  10. 顺通校园档案信息管理系统软件