vector::erase() 未按预期工作

2023-12-03

  for(it1=prime.begin();it1<prime.end();it1++){
        for(it2=it1+1;it2<prime.end();it2++){

            if(*it2%*it1==0){

                prime.erase(it2);
            }

        }
        if(*it1<1000)
        prime.erase(it1);
    }

在上面的代码片段中,我删除了素数向量 2 到 9999(埃拉托色尼筛)中已经存在的数字的倍数。我也只删除了大于 1000 的数字,但不知何故,这些数字没有被删除。

有人可以解释一下为什么吗?

提前致谢。


Calling erase()使迭代器无效。您应该使用返回值,它是被删除元素后面的值的迭代器,例如

it2 = prime.erase(it2);

但如果您进行此更改(您必须这样做!),您需要删除++it2来自 for 循环。您还需要进行这两项更改it1。这是一些未经测试的代码:

for (it1 = prime.begin(); it1 < prime.end();) {
    for(it2 = it1 + 1; it2 < prime.end();) {
        if (*it2 % *it1 == 0)
            it2 = prime.erase(it2);
        else
            ++it2;
    }
    if (*it1 < 1000)
        it1 = prime.erase(it1);
    else
        ++it1;
}

注意擦除it2 will not无效it1,因为它严格发生before it2因为it2 = it1 + 1。所以你不需要担心这种干扰。

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

vector::erase() 未按预期工作 的相关文章

  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 访问者和模板化虚拟方法

    在一个典型的实现中Visitor模式 该类必须考虑基类的所有变体 后代 在许多情况下 访问者中的相同方法内容应用于不同的方法 在这种情况下 模板化的虚拟方法是理想的选择 但目前这是不允许的 那么 模板化方法可以用来解析父类的虚方法吗 鉴于
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 CSharpCodeProvider 类编译 C# 7.3 的 C# 编译器版本是什么?

    我想使用 Microsoft CSharp CSharpCodeProvider 类来编译 C 7 3 代码 编译器版本在 IDictionary 中指定 在创建新的 CSharpCodeProvider 时将其作为输入 例如 Compil
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 检查电子邮件地址在 iOS 上是否有效[重复]

    这个问题在这里已经有答案了 可能的重复 在 iOS 2 0 上的 Objective C 中验证电子邮件地址的最佳实践 我正在开发一个 iPhone 应用程序 我需要用户在登录时提供他的电子邮件地址 检查电子邮件地址是否有效的最佳方法是什么
  • 如何通过 SSH 连接到 colima 实例

    查找 SSH 所需的步骤colima 这太新了 文档有点匮乏 我需要复制卷并运行scp看起来很理想 最快的答案 colima ssh 使用快速回答ssh tmpconfig mktemp limactl show ssh format co
  • 旋转 UIButton

    我一直在尝试使用以下方法旋转按钮 IBAction rotate id sender CGPoint pencilCenter pencil center pencil setCenter pencilCenter CGFloat floa
  • Java/Mongodb 身份验证

    我看到很多教程展示了如何使用 Java 在 mongodb 中进行身份验证 我的 mongodb 配置为启用身份验证 在控制台中我使用 使用管理员 db auth myUser newPassword 并且运行良好 在java中 在访问的每
  • 按组的平均值划分数据列

    如果我有一个数据框 例如 group rep 1 4 each 10 data c seq 1 10 1 seq 5 50 5 seq 20 11 1 seq 0 3 3 0 3 DF data frame group data 现在 我想
  • 检测 PHP 变量不足:FALSE、NULL、unset()、empty()?

    定义 PHP 中不存在某个值或不足以满足应用程序需求的最佳方法是什么 var NULL var array var FALSE 最好的测试方法是什么 isset var empty var if var NULL if var 将变量初始化
  • System.in.read实际返回什么?

    什么是 System in read 返回 这文档 says 返回 数据的下一个字节 如果到达流末尾则为 1 49是字符的 ASCII 值1 它是第一个字节的值 The stream of bytes that is produced wh
  • 如何使用 Android 从 Firebase 数据库获取嵌套子项?

    我想从这种类型的 JSON 树中获取所有允许的子项的列表 databaseRef child Users child Allowded addValueEventListener new ValueEventListener Overrid
  • Django 测试:查看创建错误响应的回溯

    该模式来自 django 文档 class SimpleTest unittest TestCase def test details self client Client response client get customer deta
  • Swift - 委托协议结构

    请原谅我对 Swift 还很陌生 我想创建一个用于 POST 请求并从服务器获取响应的委托 然后将从服务器返回的参数传递给 func 并允许我的主类做出相应的响应 下面是我的代表和我的主要课程 它没有打印 LoginViewControll
  • 使用 GoogleCloudMessaging 替换 GCMBaseIntentService

    我是 Android 开发新手 我不得不将我的第一个项目从 Eclipse 切换到 Android Studio 发现库 GCMBaseIntentService 不再受支持 我找到了 GoogleCloudMessaging 但完全不知道
  • 如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?

    我们的一位客户购买通配符 SSL 证书 example com 来自 GoDaddy 他只是简单下载 没有提供 CSR 数据 该 zip 文件中有 3 个文件 那些是fce4f111a61ea3f4 crt gd bundle g2 g1
  • 访问从模板类派生的类中的基成员函数[重复]

    这个问题在这里已经有答案了 我正在工作中开发一个库 并且设计了一个复杂的继承 其中包括模板类并从中派生 我的问题是基模板类具有虚拟重载运算符 它接受 2 个参数并返回一些值 在基类中实现了此运算符 并且大多数派生类没有重新实现此运算符 其他
  • React ReduxReducer:“this.props.tasks.map不是函数”错误

    我正在制作一个 React Redux 示例 但是 我遇到了一个问题并收到以下错误 类型错误 this props tasks map 不是函数 了解更多 我尝试了很多事情 但我似乎无法理解为什么这不起作用 我相信这是 allReducer
  • 从堆栈中删除 ViewController

    在我们的应用程序中 我们有一个登录ViewController A 用户登录时 会自动调用请求导航以导航到下一个ViewController B 然而 完成后我们想要删除登录ViewController A从堆栈中 因此用户无法 返回 到登
  • 在 pebble js 文件中包含外部 javascript 库?

    有什么方法可以在我的 pebble 代码中包含外部 JS 库吗 按照惯例 在网页上我会在我的 head 标签中执行此操作 但在 pebble 中 我无法做到这一点 因为我只使用 JS 那么我怎样才能包含 JavaScript 文件的外部库呢
  • require() 不适用于变量 - React Native

    我遇到一个奇怪的问题 如果我直接设置一个变量 其值类似于 const myString someWord 可以 但是如果我从像 const myString someVariable 这样的变量中获取值 则不起作用 并且如果我在条件块上设置
  • 而在Lua中,它是如何处理的呢?

    我在一个中看到了这段代码Lua 风格指南 print x yes and YES or x Context local function test x print x yes and YES or x rather than if x ye
  • 使用 Boost 库生成的 UUID 与 Java 的唯一性

    我组织的一个 Android 应用程序需要在每个用户首 次启动该应用程序时为其分配一个 UUID 版本 4 目前我们使用 Boost 库 1 58 0 用于此目的 我们的 Android 应用程序将使用 JNI 运行以下代码生成 UUIDv
  • vector::erase() 未按预期工作

    for it1 prime begin it1