请解释一下使用 std::ignore 的这段代码

2023-12-21

我正在阅读有关的文档std::ignore http://en.cppreference.com/w/cpp/utility/tuple/ignore来自 cppreference。我发现很难掌握这个对象的真正目的,并且示例代码并没有很好地说明这一点。例如,在下面的代码中,如何以及为什么inserted设置为真?这对我来说没有多大意义。

#include <iostream>
#include <string>
#include <set>
#include <tuple>

int main()
{
    std::set<std::string> set_of_str;
    bool inserted;
    std::tie(std::ignore, inserted) = set_of_str.insert("Test");
    if (inserted) {
        std::cout << "Value was inserted sucessfully\n";
    }
}

如果有人可以向我解释代码,我将不胜感激。谢谢。


set::insert http://en.cppreference.com/w/cpp/container/set/insert返回一个对,其中第一个是插入元素的迭代器,第二个是一个布尔值,表示该元素是否已插入。

std::tie http://en.cppreference.com/w/cpp/utility/tuple/tie创建左值引用的元组。当分配给结果时insert它使您能够设置变量tie将插入的结果返回pair's first and second成员。

std::ignore http://en.cppreference.com/w/cpp/utility/tuple/ignore是一个可以赋值但没有效果的值。

所以基本上,这段代码忽略了元素的迭代器,其中"Test"被插入并分配inserted to the second返回的对的成员set::insert指示是否插入了 an 元素。

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

请解释一下使用 std::ignore 的这段代码 的相关文章

随机推荐

  • 如何通过 http 提供静态文件

    我正在关注有关的教程在 Go 中构建网页 http golang org doc articles wiki 本教程中的所有内容都很容易掌握 但我正在尝试对其进行扩展 具体来说 我正在尝试添加一些静态文件 图片 我一直在浏览 go 文档并遇
  • Rails after_save 回调被多次调用

    我正在尝试通过 mixin 注入 after save 回调 但我的 rspec 测试告诉我 当create方法被调用 为什么该方法被调用两次 以下 rspec 测试失败 it should call callback do Product
  • rhc 设置返回“警告:常量 ::TimeoutError 已弃用”

    环境 Ubuntu 16 04 xenial Linux 内核 4 4 0 22 generic 红宝石 版本 ruby 2 3 0p0 2015 12 25 x86 64 linux gnu 复制步骤 sudo apt get insta
  • 禁用特定页面上的 Javascript 执行 (HTML/PHP)

    是否有任何 HTTP 标头可以禁用特定页面的 Javascript 我的网站提供用户生成的 HTML 内容 这就是为什么我不能只使用htmlenitities 并且我想阻止脚本编写 JavaScript 注入 我已经使用 HttpOnly
  • 为什么在 Scala 中重写的变量会得到错误的值?

    我在 Scala 中有一个 A 类 就像这样 class A val a 3 lazy val b 2 println a a println b b 接下来 我将这个类扩展到另一个 B 类 class B extends A overri
  • MySql:用列表设置变量

    我已经研究 MySQL 语句和类似问题有一段时间了 但我似乎没有任何运气 我可以创建一个变量来存储要在多个查询中使用的 1 列数据结果吗 这样做会有效吗 还是我对 DB 与 PL 的区别感到困惑 我在想类似下面的伪代码 SET list S
  • Pandas - 在方法链中使用分配和 if-else 语句

    我有 R 背景 我正在尝试复制mutate pandas 中 dplyr 的函数 我有一个如下所示的数据框 data name Jason Molly Tina Jake Amy age 42 52 36 24 73 preTestScor
  • 如何在不影响超类的情况下重写 Ruby 子类中的变量?

    假设我有一个带有一些 静态 变量的类 我希望该类的子类能够覆盖这些变量而不影响原始类 使用类变量是不可能的 因为这些变量似乎在子类和超类之间共享 class Foo test a def speak puts test end end cl
  • Eclipse、Git 和 Bitbucket - 无法推送 - 错误 401 未经授权

    我在使用 Bitbucket 和 Egit 时遇到问题 我在 BitBucket 上创建了一个新存储库 还在 Eclipse 中创建了一个新项目 当我尝试推送提交时 收到以下错误消息 Can t connect to any reposit
  • “只能加入可迭代的”python 错误

    我已经看过这篇关于可迭代 python 错误的文章 只能迭代 Python 错误 https stackoverflow com questions 19821026 can only iterable python error 但这是关于
  • Pandas 中的数据帧上采样

    给定按月索引的数据帧 我想按天重新索引 上采样 以前按月索引的值现在应除以该月的天数 try tidx m pd date range 2011 01 31 periods 2 freq M tidx d pd date range 201
  • 获取python的itertools循环当前元素

    我知道你可以使用c cycle a b c 使用在元素之间循环c next 但是有办法获取迭代器的当前元素吗 例如如果c next 回 c 这意味着迭代器位于 b 前 有什么方法可以让我得到 b 不使用next 迭代器 生成器没有任何方法来
  • XSD 验证 xs:date 和 xs:dateTime 的错误格式

    当我设置year如下所示的部分 20512 或类似的内容 XSD 仍然验证 XML 任何想法 这是一个缺陷还是我必须使用简单类型与给定的模式 Thanks XSD
  • 在 Yii 中,有没有办法使用 CActiveForm 验证表格输入?

    情况 我使用了 Yii 网站上的 wiki 文章 收集表格输入 http www yiiframework com doc guide 1 1 en form table 以如下为例 我不认为我需要针对多个模型验证传统意义上的表格输入 我只
  • 与静态库的链接不等于与其对象的链接

    Problem 与静态库链接时生成的固件映像与与直接从静态库中提取的对象链接时生成的固件映像不同 两个固件映像都没有错误地链接并成功加载到微控制器上 后一个二进制文件 与对象链接 按预期成功执行 而前一个二进制文件 链接到静态库 则不然 编
  • URLWithString:返回 nil

    这可能很容易 但我似乎不明白为什么URLWithString 在这里返回零 localisationName is a arbitrary string here NSString webName localisationName stri
  • jquery隐藏预加载[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 这是我的页面http equipe94 com 2009e html http equipe94 com 2009e h
  • 为什么这个任务提前返回?我做错了什么吗?

    我正在尝试设置一群具有最小耦合的工作人员 但我想使用 C async和任务 并非所有任务都是纯异步的 有些任务是完全同步的 这样做的动机是我想创建一些执行业务逻辑的简单方法 并使用System Threading Tasks TaskAPI
  • 检测 Mac OS X 上的调试器

    我试图检测我的进程是否正在调试器中运行 在 Windows 中有很多解决方案 在 Linux 中我使用 ptrace PTRACE ME 0 0 0 并检查其返回值 我没有设法在 Mac OS X 上执行相同的基本检查 我尝试使用 ptra
  • 请解释一下使用 std::ignore 的这段代码

    我正在阅读有关的文档std ignore http en cppreference com w cpp utility tuple ignore来自 cppreference 我发现很难掌握这个对象的真正目的 并且示例代码并没有很好地说明这