STL学习笔记(迭代器相关辅助函数)
2024-09-03 21:07:08
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,则可以通过编译。
最新文章
- Makefile 一点一滴(三)—— 尝试简单的变量替换
- C# DataGridView自定义分页控件
- CABasicAnimation 按home键后台之后,再切回来动画就停止了
- Microsoft.VisualBasic.DateAndTime.Timer 与 DateTime.Now.TimeOfDay.TotalSeconds 相当
- Owin中间件搭建OAuth2.0认证授权服务体会
- Lucky String
- springMVC的详细步骤配置
- Android中SQLite应用详解(转)
- python爬虫学习(2)__抓取糗百段子,与存入mysql数据库
- sass笔记-3|Sass基础语法之样式复用和保持简洁
- Android Support Library更新到v22.1之AppCompat新特性
- 负载均衡软件LVS分析三(配置)
- 洛谷P4782 2-SAT问题
- 转 C#实现PID控制的模拟测试和曲线绘图
- greendao3.2.0使用
- c 的内存分配与释放原则: 通常应遵循“谁malloc,谁free”的原则。
- oracle常用SQL——创建用户、表空间、授权(12C)
- jQuery请求维基百科[历史上的今天]
- 请简述以下两个for 循环的优缺点
- IO多路复用之epoll(二)
热门文章
- NOIP2012提高组
- scrapy递归下载网站
- Linux下Tcpdump使用
- request_mem_region 与 ioremap【转】
- C++11中的小细节--字符串的原始字面量
- mysql 共享空间转为独立表空间
- 关于js拖拽功能,拖拽元素的position:fixed;left:0;right:0;样式引起左右拖动元素会出现落后鼠标移动距离的问题
- Android (Notification)消息推送机制
- tf一些理解(根据资料)
- MSSQL横列转纵列