在STL中集合好处是可以对输入的元素进行排序,就是说在某些情况下对某些需要有序的元素可以使用set集合存储。不过在set集合没有提供按值查询的方法。
在集合中,set集合不允许出现重复元素,使用multiset集合可以存储重复元素。
按位置查询
按位置查询思路是:利用迭代器,将迭代器向前移动就可以实现对特定位置元素的访问。使迭代器向前移动的方法是advance(iters,steps)
参数分别是迭代器和向前移动位数。
例如以下代码
#include<bits/stdc++.h>
using namespace std;
int main(){
multiset<int>::iterator n;
multiset<int> a;
a.insert(9);
a.insert(9);
a.insert(4);
a.insert(8);
n=a.begin();
for(int i=0;i<4;i++){
cout<<*n<<' ';
advance(n,1); //迭代器向前移动一位
}
}
结果是:
4 8 9 9