首页 > 编程语言 >c++ 迭代器

c++ 迭代器

时间:2024-05-23 13:40:01浏览次数:19  
标签:cout iterator c++ vec https 迭代

 

c++迭代器,可以理解成 指针的泛化。

迭代器与指针:迭代器(Iterator)是指针(pointer)的泛化,提供了对对象的间接访问。迭代器针对容器,而指针类型针对数组。
迭代器与模板:模板使得算法独立于存储的数据类型,即任何数据类型都可以使用该程序设计。而迭代器使得算法独立于使用的容器类型,即任何容器类型都可以使用该通用方法
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/baidu_28446365/article/details/89066288

#include <iostream>
#include <vector>
using namespace std;

int main()
{
// 创建一个向量存储 int
vector<int> vec;
int i;

// 显示 vec 的原始大小
cout << "vector size = " << vec.size() << endl;

// 推入 5 个值到向量中
for(i = 0; i < 5; i++){
vec.push_back(i);
}

// 显示 vec 扩展后的大小
cout << "extended vector size = " << vec.size() << endl;

// 访问向量中的 5 个值
for(i = 0; i < 5; i++){
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}

// 使用迭代器 iterator 访问值
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}

return 0;
}

 

具体迭代器的实现可参考《STL源码剖析》

https://www.cnblogs.com/hchacha/p/7300657.html

https://users.cs.northwestern.edu/~riesbeck/programming/c++/stl-iterator-define.html

 

参考:

https://users.cs.northwestern.edu/~riesbeck/programming/c++/stl-iterator-define.html

 

标签:cout,iterator,c++,vec,https,迭代
From: https://www.cnblogs.com/rebrobot/p/18208270

相关文章

  • 迭代器的一些简单理解
    迭代器的一些简单理解使用迭代器最方便的地方就是和算法库结合,对于实现只需要聚焦于算法,而不用过多考虑数据结构的实现。举一个常见的的例子,std::copy_n用作于范围元素的复制,适配于各个容器类型,并且演化出了back_inserter/front_inserter/inserter这类更上层的迭代器。//st......
  • 基于双向堆栈的二叉树双向迭代算法
    前言之前一直在研究avl树的迭代算法。我参考了C++标准库map的实现,发现他们在树节点上使用了parent指针+一个状态标志位的形式,去实现动态迭代。但是我不想用parent指针,因为觉得会增加调整指针的时间还有浪费存储空间。于是,在我的不屑努力下,终于,找到了一种基于堆栈实现的双向迭代......
  • C++类中封装指针函数
      classMyClass{public:voidfunc1(){//实现}voidfunc2(){//实现}//成员函数指针类型typedefvoid(MyClass::*MemberFuncPtr)();//一个成员函数指针成员变量MemberFuncPtrptrFunc;......
  • C++高性能服务器框架—协程模块
    协程模块概述一、概念可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的;对比首先介绍一下为什么要使用协程。从了解进程,线程,协程之间的区别开始。从定义来看进程是资源分配和拥有的基本单位。进程通过内存映射拥有独立的代......
  • C++实现128位整数类
    如何编写一个128位的整数现在的大部分的计算机编程语言都包含了64位的有符号整数和无符号整数,有的甚至还提供了128位的整数和大数,比如:\(C\#\):System.Int128,System.UInt128\(Rust\):i128,u128但是在C/C++中并未发现uint128_t/int128_t,尽管在某些平台下可以看到__int1......
  • [20] C++虚幻引擎热更新
    Day1大纲行为树节点网络PDF网络系统内容Task节点FinishWithResult:MoveDirectlyToWard:PushPawnAction:运行至当前队列节点首节点 RunBehaviorDynamic:动态运行子行为树SetTagCooldown:WaitBlackboardTime:装饰器节点GamePlayTagCondition......
  • c++ 语法摘记
    目录c++语法摘记c++获取当前时间的三种方式c++运算符优先级c++语法摘记c++获取当前时间的三种方式c++运算符优先级......
  • C++ - 结构体转cha*
    c++中结构体转cha*在C++中,将结构体转换为char*意味着你想要获取结构体的内存表示,通常用于序列化或者通过网络发送结构体数据。下面是一个简单的例子:#include<iostream>#include<cstring>structMyStruct{inta;doubleb;};char*structToCharAr......
  • c++ L _T()
     字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此, VisualC++里边定义字符串的时候,用_T来保证兼容性。 VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到un......
  • 解锁产品迭代新速度:A/B测试在AI大模型时代的应用
      (DP微信公众号发布请标注原创,作者DataTester) 本文作者为火山引擎A/B测试平台DataTester的资深研发工程师刘明瑶。作为火山引擎数智平台VeDI旗下的核心产品,DataTester源于字节跳动长期的技术和业务沉淀,目前已经服务了数百家企业,助力企业在业务增长、用户转化、产品迭......