迭代器的类型:输出、输入、正向、随机访问迭代器

2023-12-30

C++ STL 中有多少种类型的迭代器?到目前为止,我所知道的有这些:

  • 输出迭代器
  • 输入迭代器
  • 前向迭代器
  • 随机访问迭代器

还有更多吗?它们之间有什么区别?各自的局限性和特点是什么?什么时候使用哪种类型?


如果可以的话,找到并阅读“C++ 标准库:教程和参考”。本书包含一整章关于 STL 迭代器的内容。

这是书中的一些内容:

Iterator Category  Ability                          Providers
-----------------  -------------------------------  ----------------------------
Input iterator     Reads forward                    istream
Output iterator    Writes forward                   ostream, inserter
Forward iterator   Reads/writes forward             forward_list,
                                                      unordered_[multi]set,
                                                      unordered_[multi]map
Bidirectional it.  Reads/writes forward/backward    list, [multi]set, [multi]map
Random access it.  Reads/writes with random access  vector, deque string, array 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迭代器的类型:输出、输入、正向、随机访问迭代器 的相关文章

  • 必须打开存储才能执行此操作 - System.IO.Packaging.Package

    我正在使用 System IO Packaing Package 类来压缩文件 我的应用程序的多个实例可以同时运行 并读取和保存文件 当处理小文件时 一切似乎都很好 但是当涉及大文件时 如果应用程序的两个实例同时保存 我会收到一个异常 消息
  • 没有 Unicode 字节顺序标记。无法切换到 Unicode

    我正在使用 XSD 编写 XML 验证器 下面是我所做的 但是当验证器到达该线时while list Read 它给了我错误 没有 Unicode 字节顺序标记 无法切换到 Unicode 有人可以帮我解决吗 public class Va
  • 为什么派生类不使用基类的operator=(赋值运算符)?

    以下是实际问题的简化版本 而不是打电话Base operator int 代码似乎生成了一个临时的Derived对象并复制它 既然函数签名似乎完美匹配 为什么不使用基本赋值运算符 这个简化的示例没有显示任何不良影响 但原始代码在析构函数中有
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 如何不在类中实现接口的功能?

    面试时面试官问了我以下问题 但我不知道这个问题的答案是什么 请帮忙 如果我不想 我必须做什么 在我的类中实现一个函数 在接口中声明为 由我班实施 Edited 我正在使用 NET 和 C 如果有人可以提供 C 示例代码示例 那就太好了 Th
  • 如何在 VS Code 中为 CMake 项目设置 C/C++ IntelliSense?

    我正在尝试使用 libTooling 编写一个工具 我对其进行了设置 以便它可以使用 LLVM 文档中的示例进行编译 然而 C C IntelliSense 似乎不适用于 CMake 项目 我的工具位于
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 使用剪贴板 SetText 换行

    如何使用 SetText 方法添加换行符 I tried Clipboard SetText eee n xxxx 但当我将剪贴板数据粘贴到记事本中时 它没有给我预期的结果 预期结果 eee xxxx 我怎样才能做到这一点 Windows
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • 在控制台应用程序中与空的 Windows 消息队列作斗争

    在下面的 可编译的 示例中 我尝试在普通控制台应用程序中侦听 Windows 消息队列 以便接收有关 USB 设备连接 断开连接的通知 我从这里获取了示例代码 在 C 非 GUI 应用程序中检测 USB 插入 移除 https stacko
  • 在swift中,是否可以通过直接从数组复制来创建SKSpriteNode?

    目前我在 Swift 中的一个项目遇到了一点麻烦 我想知道你是否可以创建一个全新的精灵节点 如下所示 var spriteNode SKSpriteNode nodes 3 其中节点是 SKSpriteNodes 的数组 并且在索引号 3
  • erlang中的双向链接数据结构

    嗨 我想制作一棵树 在父母和孩子之间保留双向引用 但这似乎不可能实现 因为当我创建第一个对象时 我没有另一个对象 因此无法引用它 这是一些示例代码 record node name children root main gt A node
  • Scala 中其他实例的受保护成员

    我在学习Scala的过程中遇到了一个困难 我有一个继承层次结构 本质上与此等效 class A protected def myMethod println myMethod from A class B extends A def inv
  • 使用 Catch2 时未解决的外部符号错误

    我正在尝试在 Visual Studio 中进行 Catch2 单元测试 我创建了一个小测试项目来练习 当我尝试编译此测试项目时 出现链接器错误 我现在正在尝试诊断此链接器错误 但是Catch2 hpp头文件包含数千行代码 我希望更熟悉 C
  • Cocoa Touch 相当于 NSArrayController 吗?

    开始稍微使用 Core Data 虽然我已经弄清楚如何在常规 Cocoa 应用程序中使用它 但它在 Cocoa Touch 中的工作方式似乎有点不同 如何将实体绑定到对象 例如 Cocoa Touch 中的表格单元格 不幸的是 iPhone
  • Lua 中的 for...in 是什么意思?

    我正在玩下面的代码并感到困惑 function square iteratorMaxCount currentNumber if currentNumber
  • MVC3起始页

    我正在 Visual Studio 2010 中开发一个 Web 应用程序 它的 mvc3 我试图弄清楚如何发布它 并通过各种说明我尝试将视图 主页 索引设置为起始页 这是一个坏主意 现在没有任何效果 即使尝试像我一样查看该站点 使用 F5
  • 单元测试时如何将控制器注入指令中

    我想测试这样声明的 AngularJS 指令 app directive myCustomer function return template cust html controller customerController 在测试中 我想
  • Junit @BeforeClass 和 @AfterClass 在多个测试用例的情况下的行为

    Folks 假设我有一个定期运行的复杂的子类测试套件 作为其中的一部分 我试图确保每个测试类严格地一个接一个地执行 并且Test2 s BeforeClass方法之前不会启动Test1 s AfterClass已经完成了 这是一个有效的假设
  • 在 Windows 窗体中运行 WCF

    我有一个程序作为客户端和服务器工作 我将 wcf 服务与 BasicHttpBinding 结合使用 并且该程序在控制台应用程序中运行 当我将代码移至 Windows 窗体应用程序时 一切都停止工作 当客户端调用一个操作时 它不会返回 当调
  • 原子函数真的会让 CUDA 中的变量变得不稳定吗?

    我写了一个非常简单的代码 要求线程 0 更新全局变量 而其他线程继续读取该变量 但我发现其他线程并没有真正获取该值 代码在这里 很简单 谁能给我任何建议如何解决它 多谢 global void addKernel int c int i t
  • 将 .ui 文件转换为 .py 文件时出错

    我在 Qt4 Designer 中创建了 notepad ui 文件 并尝试通过命令创建 notepadwindow py 文件 pyuic4 bat notepad ui o notepadwindow py 结果我得到了以下错误 Tra
  • Servlet 上的全局变量。是对所有会话全局的,还是仅对当前会话全局的? [复制]

    这个问题在这里已经有答案了 我需要在应用程序运行时共享信息 如果我有 public class example extends HttpServlet Object globalObject doGet doPost 用户通过服务器和对象全
  • 无法将 float 转换为 int if 对象

    这段代码运行良好 float ff 5 5f int fd int ff Console Write fd 哪里有这个代码没有 float ff 5 5f object jf ff int fd int jf Console Write f
  • 使用 PyGObject 中的 GtkSourceView 从 Glade 加载 GUI

    我正在尝试使用 PyGObject 中具有 GtkSourceView 小部件的 Glade 文件 我写了一个关于如何开始在 Glade 中使用新的 GtkSourceView 3 0 的小指南 http cjenkins wordpres
  • 使用java更新ArrayList/HashMap中的元素

    我正在为大学做一些课程 我真的应该知道这一点 但我不确定如何更新存储在 HashMap 中的对象 我有一个抽象的 用户 类 它扩展到 客户 和 员工 类 其实例存储在名为 mapUsers 的 HashMap 中 我认为可以完成的方法是将要
  • DynamoDB 物化图模式示例

    我开始研究 DynamoDB 但在阅读有关物化图模式的部分时遇到了困难 管理多对多关系的最佳实践 https docs aws amazon com amazondynamodb latest developerguide bp adjac
  • 聚合函数上的 iOS FetchRequest:如何包含挂起的更改?

    我终于至少缩小了这个问题的范围 我正在计算支出的一些聚合函数 如本例中的总和 如果我更改一些支出 此聚合提取不会立即刷新 而是在一段时间后刷新 可能是在更改保存到数据库之后 我在文档中找到了这部分 void setIncludesPendi
  • 迭代器的类型:输出、输入、正向、随机访问迭代器

    C STL 中有多少种类型的迭代器 到目前为止 我所知道的有这些 输出迭代器 输入迭代器 前向迭代器 随机访问迭代器 还有更多吗 它们之间有什么区别 各自的局限性和特点是什么 什么时候使用哪种类型 如果可以的话 找到并阅读 C 标准库 教程