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