如何使用向量查找算法
如果向量的元素是pair类型,如vector
。我希望查找算法专注于向量的第一个元素。我该怎么做?
例如,以下是我的数据:
<1, 2>
<3, 5>
<3, 4>
...
我想要在第一列中查找 1。
谢谢,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果向量的元素是pair类型,如vector
。我希望查找算法专注于向量的第一个元素。我该怎么做?
例如,以下是我的数据:
<1, 2>
<3, 5>
<3, 4>
...
我想要在第一列中查找 1。
谢谢,
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
不遗余力地让答案通用:
使用它,例如
Going out of my way to make the answer generic:
use it like, e.g.
如果您使用较新的 C++ 编译器,您可以编写
If you're using newer C++ compiler you could write
为什么不使用
multimap
而不是vector
?它的.find(1)
将产生一个迭代器,该迭代器将给出对pair(1,2)
如您的示例中所示; http://www.sgi.com/tech/stl/Multimap.htmlwhy not use a
multimap<int, double>
instead of avector
? its.find(1)
would yield an iterator that would give the pairpair<int, double>(1,2)
as in your example; http://www.sgi.com/tech/stl/Multimap.html无论语言/平台如何,这都是您需要做的(以伪代码形式):
现在您应该拥有最小的键及其分别为 min 和 minValue 的值。
但是,在所有键都等于 MAXIMUM_INTEGER_VALUE 的极端情况下,您可能会得到错误的结果。解决方案是在初始化期间将第一个元素的值分配给 minValue 而不是 0。
Regardless of language/platform this is what you need to do (in pseudo code):
Now you should have the smallest key and it's value in min and minValue respectively.
However you COULD in the extreme case of when all keys are equal to MAXIMUM_INTEGER_VALUE end up with the wrong result. The solution would be to assign the first elements value to minValue instead of 0 during initialization.