Uva 10474大理石在哪儿——Vector写法
程序员文章站
2024-03-18 23:30:22
...
#include "cstdio"
#include "iostream"
#include "algorithm"
#include "vector"
using namespace std;
int main(){
int count;
int num;
int record;
int kase = 1;
int question;
vector<int> stone;
while(cin >> count >> num){
stone.clear();
for(int i = 0; i < count; i++){
cin >> record ;
stone.push_back(record);
}
sort(stone.begin(),stone.end());
for(int i = 0; i < num; i++){
cin >> question ;
vector<int>::iterator result = find(stone.begin(),stone.end(),question);//find 找到第一次出现元素的位置,如果没有就返回.end();
printf("CASE# %d\n",kase++);
if(result == stone.end()){ //注意v1.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素,[begin, end)
printf("%d not found \n",question);
// printf("%d\n",result);// 41817412
// printf("%d\n",stone.end());//从1开始 41817416
}
else{
printf("%d found at %d\n",question,result - stone.begin() + 1); //result与begin之间间隔为 (X - 1 + 1)
// printf("%d\n",stone.begin());
// printf("%d\n",result);// 41817412
// printf("%d\n",stone.end());
}
}
}
return 0;
}