STL实例——排序与检索

来源:互联网 发布:yum命令常用来做什么用 编辑:程序博客网 时间:2024/06/14 03:48

下边都将用最简单的例子来介绍STL

多组输入,对于输入的每一组数据,输入一个整数n(0<n<100)表示有n个数据(数据在int数据范围内),然后在另一行中输入这n个数,输入一个整数k,表示进行k次询问,输入k个数a(a属于这n个数),每次询问输出a所在位置的下标(从0开始记下标),每次输出占一行。

input:

5

3 1 4 2 5

2

4

5

output:

3

4



代码:

#include <iostream>

#include<algorithm>
using namespace std;
int main()
{
    int n, k, a, s[105];
    while(cin>>n)
    {
       for(int i = 0; i < n; i++)
          cin>>s[i];
       sort(s, s+n);//排序函数,如果是对不定长数组进行排序调用方式为sort(v.begin(), v.end());
       cin>>k;
       while(k--)
       {
          cin>>a;
          int cnt = lower_bound(s, s+n, a) - s;//此函数的用途是寻找大于等于a的第一个数的位置下标;
          cout<<cnt<<endl;
       }
    }
    return 0;
}



0 0