如何在C ++中找到存储在多重集的特定索引中的值?

时间:2017-05-27 16:23:48

标签: c++ stl

假设我有一个多重集作为{1,3,5,7,9}。我想找到这个使用C ++的multiset中的第3个元素。如果不使用循环,我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

多集通常实现为树,因此您必须逐个遍历它以按顺序查找特定节点。换句话说,无论你如何表达它(循环或其他),它都需要N次操作才能到达树中的N th 项目。

如果你的兴趣纯粹是为了避免编写循环,你可以......通过使用类似的东西来伪装它:

auto p = mySet.begin();
std::advance(p, 2);

...但这只会隐藏advance内部的循环,而不会真正消除它。 std::next也可以完成这项任务,但(再次)只是隐藏循环,不会消除它。

答案 1 :(得分:-4)

这个应该指向数组的第2个元素

  

int a [] = {1,3,5,7,9}; int * p = a; std :: cout<< *(++ a)<