通过值获取 std::queue 中元素的索引

2024-04-24

有没有一种简单的方法来获取元素在 a 中的位置std::queue通过它在 C++ 中的值?

例如:

std::queue<int> numbers;

numbers.push(7);
numners.push(4);
numbers.push(11);

int position = numbers.getPosition(4); //should be 1

如果您想获取元素的索引,您可能应该考虑使用std::deque https://en.cppreference.com/w/cpp/container/queue容器而不是std::queue容器adapter,正如已经建议的这个另一个答案 https://stackoverflow.com/a/54310728/8012646.


如果你还想坚持std::queue https://en.cppreference.com/w/cpp/container/queue由于某些其他原因,容器适配器,您应该知道它确实通过以下方式提供对底层容器的访问:受保护的数据成员c.

你可以从std::queue为了访问底层容器并使用std::find() https://en.cppreference.com/w/cpp/algorithm/find用于在该容器中查找具有此类值的元素的函数模板。然后,只需使用以下方法返回该元素的位置std::distance() https://en.cppreference.com/w/cpp/iterator/distance.

#include <algorithm>
#include <queue>

template<typename T>
class Queue: std::queue<T> {
public:
   auto getPosition(const T& val) const {
      auto it = std::find(this->c.begin(), this->c.end(), val);
      return std::distance(this->c.begin(), it);
   }
// ...
};

如果未找到该元素,则索引将对应于返回的索引size()成员函数。

如果存在重复项,该解决方案基于std::find()将返回第一个的位置,即找到具有请求值的第一个元素val.

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

通过值获取 std::queue 中元素的索引 的相关文章

  • 将数据集导出到 EXCEL

    我使用以下代码将数据库表中的字段导出到 Excel 中 我想要做的是能够编写一条 SQL 语句从多个表中检索字段并将其导出到 Excel 中 这段代码只允许我导出一张表 另外 如何显示保存提示对话框 示例代码将不胜感激 非常感谢 prote
  • 每个 CPU 核心处于 C0 电源状态的时间

    任何帮助弄清楚如何做到这一点都会很棒 在过去一秒内 每个 CPU 核心处于 C0 电源状态的时间有多少 这是针对 Mac 应用程序的 因此需要 Objective C cocoa 和 c OS X 没有任何公开 CPU c 状态的 API
  • 将数组从 C# 编组到 C++ 并返回:PInvokeStackImbalance

    我有一个 C 函数 我想从 C 访问它 问题是我不断收到 PInvokeStackImbalance 异常 但我不知道为什么 当检查异常被关闭时 一切都运行良好并且符合预期 我的 C 函数的签名是 extern C double solve
  • Reflection.Emit 中的短格式操作码错误

    我正在制作一种与以下非常相似的小语言hlsl但仅支持像素着色器 该语言使用reflection emit构建实现相同功能的 NET 程序集 我目前正在测试分支指令的实现if在我的一个单元测试中 一个大的if与内if elses 失败并显示以
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • C# - 如何将 IntPtr 缓冲区数据保存到文件(最快的方法)?

    我使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中 这是一个简单的回调函数 private void callback IntPtr buffer int length byte bytes new byte lengt
  • Code First - 实体框架 - 如何公开外键

    我有以下数据对象 public class Customer System Data Entity ModelConfiguration EntityTypeConfiguration
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • Parallel.For 和 Break() 误解?

    我正在研究 For 循环中的并行性中断 看完之后this http tipsandtricks runicsoft com CSharp ParallelClass html and this http reedcopsey com 201
  • 如何使用包含的转换的排名来比较两个标准转换序列

    include
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • gcc 中的“假设”子句

    gcc 最新版本 4 8 4 9 是否有类似于以下的 假设 子句 assume 内置icc支持吗 例如 assume n 8 0 从 gcc 4 8 2 开始 gcc 中没有 assume 的等效项 我不知道为什么 这会非常有用 马夫索建议
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • 在 C# 中将 ulong 映射到 long ?

    我正在尝试将 ulong 映射到 long 反之亦然 将 uint 映射到 int 反之亦然 如下所示 为了将值保存在具有签名类型的 MS SQL 数据库中仅限整数和大整数 我这样做是因为我必须检查 在数据库中 一个数字 uint ulon
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul

随机推荐

  • 属于主键?

    我有一个像这样的数据库布局 Users id name etc Lead id initials etc 基本上一个用户有很多线索 这initials字段映射到name用户表中的字段 我对用户设置有一个完美的关系 has many lead
  • 在编译时将多个文件中的变量收集到单个连续的内存块中

    我想在多个 c 文件中定义 并初始化 结构体的多个实例 但我希望它们在编译时收集到一个连续的数组中 我一直在研究使用自定义部分并使用该部分的开始和结束地址作为结构数组的开始和结束 但我还没有完全弄清楚细节 而且我不想编写自定义部分链接器脚本
  • vim:无法加载库 libpython

    我不让 vim 与 python 支持一起工作 我使用以下配置编译 vim 7 4 972 configure enable shared with features huge enable multibyte enable cscope
  • 如何使用 mediaelement.js 获取 HTML5 音频播放列表?

    我尝试在 mediaelement js 中搜索音频播放列表的示例 但我没有找到 mediaelement js 支持音频播放列表吗 如果是这样 请支持我的示例代码或链接 非常感谢 我设法获得了一个超级基本 阅读 hacky 的播放列表演示
  • WAMP服务器将MySQL切换为MariaDB

    如何在WAMP 3 1 0中将数据库从MySQL切换到MariaDB 我正在寻找它 但我找不到它 从您显示的图像来看 MySQL 和 MariaDB 似乎都已经在运行 注意 这有点占用内存 简单测试看看 MySQL 和 MariaDB 是否
  • python服务器中进程之间共享列表

    我有简单的UDP服务器 它适用于多重处理 我想创建一个列表 其中包含有关所有客户的信息 I use Manager 但我不明白 如何在列表中附加信息 我需要传输 Manager 的对象来处理 但是如何 我使用新属性的方法不起作用 impor
  • 将图像插入 JTable

    我在将图像插入 JTable 时遇到问题 我搜索了一下 发现有两种方法 您可以覆盖表模型的 getcolumnclass 或创建自定义 tablecellrender 我选择使用以下代码制作自己的单元格渲染器 public class My
  • 从 Helm stable/cert-manager 升级到 jetstack/cert-manager

    我们有一个生产 AKS 集群 其中包含stable cert manager安装 helm 图表以允许使用 Let s Encrypt 证书 当前安装的版本是cert manager v0 6 0 in the kube system命名空
  • Laravel:BadMethodCallException 方法 [find] 不存在

    当尝试使用模型对象 User 从数据库中提取一些值时 出现以下错误 BadMethodCallException Method find does not exist 这是我的文件 模范用户
  • 错误 NU5049 不支持 SDK 样式项目的 pack 命令

    我的解决方案包含 Framework 4 8 项目 Net Standard 2 1 项目和 net6 项目 它已经运行了几周 没有出现任何问题 今天构建管道开始失败并出现错误 错误 nuget 命令失败 退出代码 1 和错误 错误 NU5
  • 解析iOS SDK:从Xcode调用云函数

    Scenario我想在我的应用程序中使用这两个云函数 他们检查用户的在线状态 我想为每个用户设置一个布尔键 isOnline 如果用户在线 则设置为 是 如果用户不在线 则设置为 否 var moment require moment Pa
  • 使用 jQuery 获取类中不同类型的输入

    假设我在 JavaScript 中有一个 jquery 函数 并且到目前为止我有这段代码 效果很好 jQuery div class someClass input type text each function some code 在上面
  • 如何在 C# 中使用随机数?

    我正在用 C 和 XNA 开发 Pong 我想使用一个随机数 在一定范围内 来确定诸如球是否直线反弹或以一定角度反弹以及球击中球拍时移动的速度之类的事情 我想知道如何实施 Use the Random http msdn microsoft
  • 为什么我收到 PayPal Android Native Checkout SDK - 无效的 client_id 或 redirect_uri

    我正在使用新的 Android Native Checkout SDK 和 Kotlin 并且我一直遵循文档中的每一步 但这种情况不断发生 我不知道为什么 我也在尝试PayPal Android Native Checkout SDK 无效
  • 为什么调用指定命名空间的函数会更慢?

    我认为指定我给出的命名空间R要做的工作更少 但我可能是错的 library microbenchmark gt microbenchmark unique default c 1 1 10 base unique default c 1 1
  • 忽略 git log -p 中的文件

    我正在尝试总结我在一个项目上的工作 问题是我不想在输出中包含测试文件git log patch 这些文件位于一个名为mtest 但是 该文件夹还包含我确实想展示的测试套件代码 我想排除的测试文件具有扩展名mscx or xml 所以我希望过
  • 关闭文件夹/命名空间约定

    我看到人们在谈论烦恼Visual Studio 自动创建与项目文件夹相对应的命名空间 https stackoverflow com questions 1289425 should i stop fighting visual studi
  • 如何使用 conda 卸载 r-essentials?

    最近 我安装了r essentials using conda命令 conda install c r r essentials正如这个网址中所描述的 https anaconda org r r essentials https anac
  • Angular2 条件路由

    这可能是一个基本问题 但是在 Angular2 中是否有任何方法可以进行条件路由 或者 有人会在路由器之外这样做吗 我知道 ui router 有一定的能力做到这一点 但我在 Angular2s 路由器中没有看到类似的东西 如上所述 角路线
  • 通过值获取 std::queue 中元素的索引

    有没有一种简单的方法来获取元素在 a 中的位置std queue通过它在 C 中的值 例如 std queue