advance()可令迭代器前进

#include <iterator>
void advance(InputIterator& pos,Dist n);

面对Random Access(随机存取)迭代器,该函数只是简单的调用pos+=n。而对于其他任何类型的迭代器则调用++pos(--pos)n次。

distance()可以处理迭代器之间的距离

#include <iterator>
Dist distance(InputIterator pos1,InputIterator pos2);

面对Random Access迭代器,该函数仅仅传回pos2-pos1。而对于其他迭代器,则会不断递增pos1,知道抵达pos2为止,然后传回递增次数。

iter_swap()可交换两个迭代器所指内容

#include <iterator>
void iter_swap(ForwardIterator pos1,ForwardIterator pos2);

迭代器型别不必相同,但所指的两个值必须可以相互赋值。

Vector迭代器的递增

考虑下面例子:

std::vector<int> coll;
...
if(coll.size()>){
sort(++coll.begin(),coll.end())
}

通常编译sort()会失败。因为vector一般实作为一般指针,而C++不允许修改任何基本型别(包括指针)的暂时值。而对于struct和class则允许。

如果vector实作为一般指针,则会编译失败,如果vector实作为class,则可以通过编译。

最新文章

  1. Makefile 一点一滴(三)—— 尝试简单的变量替换
  2. C# DataGridView自定义分页控件
  3. CABasicAnimation 按home键后台之后,再切回来动画就停止了
  4. Microsoft.VisualBasic.DateAndTime.Timer 与 DateTime.Now.TimeOfDay.TotalSeconds 相当
  5. Owin中间件搭建OAuth2.0认证授权服务体会
  6. Lucky String
  7. springMVC的详细步骤配置
  8. Android中SQLite应用详解(转)
  9. python爬虫学习(2)__抓取糗百段子,与存入mysql数据库
  10. sass笔记-3|Sass基础语法之样式复用和保持简洁
  11. Android Support Library更新到v22.1之AppCompat新特性
  12. 负载均衡软件LVS分析三(配置)
  13. 洛谷P4782 2-SAT问题
  14. 转 C#实现PID控制的模拟测试和曲线绘图
  15. greendao3.2.0使用
  16. c 的内存分配与释放原则: 通常应遵循“谁malloc,谁free”的原则。
  17. oracle常用SQL——创建用户、表空间、授权(12C)
  18. jQuery请求维基百科[历史上的今天]
  19. 请简述以下两个for 循环的优缺点
  20. IO多路复用之epoll(二)

热门文章

  1. NOIP2012提高组
  2. scrapy递归下载网站
  3. Linux下Tcpdump使用
  4. request_mem_region 与 ioremap【转】
  5. C++11中的小细节--字符串的原始字面量
  6. mysql 共享空间转为独立表空间
  7. 关于js拖拽功能,拖拽元素的position:fixed;left:0;right:0;样式引起左右拖动元素会出现落后鼠标移动距离的问题
  8. Android (Notification)消息推送机制
  9. tf一些理解(根据资料)
  10. MSSQL横列转纵列