我可以通过添加一个数字来增加迭代器吗?

2024-02-20

我可以使用迭代器进行正常计算,即通过添加数字来增加它吗?

举个例子,如果我想删除元素vec[3],我可以这样做吗:

std::vector<int> vec;
for(int i = 0; i < 5; ++i){
      vec.push_back(i);
}
vec.erase(vec.begin() + 3); // removes vec[3] element

它对我有用(g++),但我不确定它是否有效保证上班。


如果迭代器是随机访问迭代器,则它可以工作,其中向量的迭代器是(请参阅参考 http://en.cppreference.com/w/cpp/concept/RandomAccessIterator)。 STL函数std::advance http://en.cppreference.com/w/cpp/iterator/advance可用于推进通用迭代器,但由于它不返回迭代器,因此我倾向于使用 +(如果可用),因为它看起来更干净。

C++11注释

现在有std::next http://en.cppreference.com/w/cpp/iterator/next and std::prev http://en.cppreference.com/w/cpp/iterator/prev, which do返回迭代器,因此如果您在模板领域工作,您可以使用它们来推进通用迭代器并且仍然拥有干净的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以通过添加一个数字来增加迭代器吗? 的相关文章

随机推荐

  • 将 SimpleXMLElement 对象转换为数组

    我必须将 SimpleXMLElement 对象转换为数组 数组如下 Array 0 gt SimpleXMLElement Object Cell gt Array 0 gt SimpleXMLElement Object Data gt
  • 如何在 Spring 5 WebFlux WebClient 中设置超时

    我正在尝试在 WebClient 上设置超时 这是当前的代码 SslContext sslContext SslContextBuilder forClient trustManager InsecureTrustManagerFactor
  • 如何在 redmine wiki 中添加一个空行?

    我只是想知道如何在 redmine 中添加一些空行 我尝试的是输入以下文本 some sample txt with a few empty lines 我在redmine中得到的是 some sample txt with a few e
  • 当窗口滚动到特定位置时触发事件

    我想在浏览器窗口超出某个点时调用函数 例如 用户将窗口从顶部向下滚动超过 200px 是否有一个我可以绑定的事件 然后我如何检查从浏览器顶部到页面顶部的偏移量是多少 您可以使用onscroll https developer mozilla
  • 24小时内SQL选择?

    People Born 是日期时间类型 我只想删除过去 24 小时内出生的人 我将其作为 Visual Studio 2010 内的存储过程运行 这是我的尝试 DELETE FROM People WHERE People Born gt
  • 为什么一个汉字需要1个字符(2个字节)而不是3个字节?

    我有以下程序来测试Java如何处理中文字符 String s3 世界您好 char chs s3 toCharArray byte bs s3 getBytes StandardCharsets UTF 8 byte bs2 new Str
  • 将 QStackedWidget 的大小调整为打开的页面[重复]

    这个问题在这里已经有答案了 我想要我的QStackedWidget调整到打开页面的大小 我在第一页附加了很多小部件 但其余页面只有一个按钮 所以它们保持这么大 第一页还可以 我怎样才能让我的QStackedWidget获得正在查看的页面的大
  • Kafka 发送重复消息

    我们使用 kafka 0 9 0 0 来编排不同微服务之间的命令消息 我们发现一个间歇性问题 即重复消息被传递到特定主题 下面给出了发生此问题时出现的日志 有人可以帮助理解这个问题吗 Wed 21 Sep 2016 09 19 07 WAR
  • Flask facebook canvas 应用程序 - 不允许 405 方法

    我对 Web 开发和 Python 相当陌生 试图使用 python Flask 制作一个 facebook 应用程序 在本教程中找到了一些我用来入门的代码 http ryaneshea com facebook authenticatio
  • Scala 案例类参数从数组实例化

    考虑一个可能有大量成员的案例类 为了说明这种情况 假设两个参数 如 case class C s1 String s2 String 因此假设一个数组的大小至少有那么多参数 val a Array a1 a2 Then scala gt C
  • dplyr::mutate 中的非标准评估

    理论上这应该可行 因为我已经阅读了 NSE 上的 tidyverse 指南 但它给我带来了一个错误 如本示例底部所示 为什么是这样 我了解如何对对象进行简单的准引用 但我不了解如何评估两个准引用对象的一部分 有人能帮忙吗 tmp lt st
  • Python 3 - 计算两个列表中的匹配项(包括重复项)

    首先 我是编程和Python的新手 我看过这里但找不到解决方案 如果这是一个愚蠢的问题 请原谅我 我有两个列表 我试图确定第二个列表中的项目在第一个列表中出现的次数 我有以下解决方案 list1 black red yellow list2
  • 在 Android 浏览器中,在文本后使用插入符号聚焦文本区域

    我目前正在编写一个简单的网络应用程序来在 Android 浏览器中查看推文 我使用此代码将插入符号聚焦在当前文本之后 var oldContent document tweetBox tweet value document tweetBo
  • 如何在 Mac 上构建 gcc?

    我想在 Mac 上构建最新版本的 gcc 我有最新的 xcode 但我正在寻找更新版本中的一些 c 0x 功能 lambda 函数等 有没有关于这样做的好的分步教程 你应该看看自制项目 https brew sh Homebrew 允许您执
  • 我如何声明实现类的 java 接口字段应该完善该字段

    如何声明实现类的 java 接口字段应该细化该字段 例如 public interface IWorkflow public static final String EXAMPLE interface field public void r
  • 简单问题:Java 中的 ValueChanged 事件

    Java 中是否存在值更改时触发的事件 就像这个例子一样 public class Example public String var1 Something public Int var2 4 If var1 or var2无论事件发生什么
  • 持续集成中的 Java 分析

    有没有像 Jenkins 这样与 CI 服务器集成的 Java 分析工具 我不知道这样的东西是否存在 但是如果有某种测试框架能够产生像 YourKit Profiler 的快照这样的结果 那就太好了 这些将由 CI 服务器调用 并将结果与
  • C# 中的命名锁集合?

    我有多个线程将数据写入公共源 并且我希望两个线程当且仅当它们接触同一数据时才相互阻塞 如果有一种方法可以专门锁定任意键 那就太好了 string id GetNextId AquireLock id try DoDangerousThing
  • 您可以启动一个 C# 应用程序吗,这样它就不需要 .NET

    我在用视窗 10我确实想在 Windows 7 计算机上运行我的应用程序 但不允许我下载 NET Framework 有没有一种方法可以让我不需要在 Windows 7 上安装 NET Framework 如果你想让它立即运行 你必须使用
  • 我可以通过添加一个数字来增加迭代器吗?

    我可以使用迭代器进行正常计算 即通过添加数字来增加它吗 举个例子 如果我想删除元素vec 3 我可以这样做吗 std vector