c++ - 如果元素存在,则获取容器中元素的索引
问题描述
我通过学习更好地使用标准库中的算法来提高我的 C++ 技能。我有一个问题,我不确定如何使用算法正确解决。我需要检查一个元素是否存在于向量中,如果存在,获取它的索引。
使用原始循环,我将使用一个整数并为每次迭代增加它。
使用算法我只能使用std::find
然后使用std::distance
,但这需要比原始循环更多的计算。使用算法完成这项任务的最佳方法是什么?
解决方案
使用算法完成这项任务的最佳方法是什么?
使用std::find
,然后使用std::distance
.
除了具有更高效find
成员函数的容器,例如关联容器。在这种情况下,使用find
成员函数 and std::distance
。
还有一些数据结构具有比迭代器更有效的计算距离的方法,但没有标准容器使用这种数据结构。
但这需要比原始循环更多的计算。
它没有(假设是优化编译器)。
为什么不?
因为有问题的标准算法不需要做任何原始循环不做的事情。
推荐阅读
- r - 在 R 中的另一个变量中调用变量名
- node.js - 如何在我自己的节点 js 模块中使用模块?
- python - 根据行值将单元格从一个熊猫数据帧覆盖到另一个数据帧
- amazon-web-services - AWS IMDS 在特殊链接本地 IP 169.254.169.254 上运行 - IMDS 是否在同一台 EC2 机器上运行,查询哪些信息?
- html - 如何将 word 文档(.docx 或 .rtf)转换为响应式 html 以用于移动和 Web 视图
- android - 在调用 BindProcessToNetwork(network) 之后。APP永远不会通过移动数据连接到互联网
- html - 如何索引从 Apache Nutch 到 Solr 的爬网“html”?
- ruby - 如何在 minitest 中存根写入文件
- amazon-web-services - 如何设置 AWS S3 策略,其中 Principals 是特定 aws 账户中的所有委托人
- reactjs - 如何将此 useEffect firebase onAuthStateChanged 函数转换为类?