题解 | 找x

找x

https://www.nowcoder.com/practice/069e2130430c41229ab25e47fa0949a6

#include<cstdio>
#include<vector>
#include <algorithm>

using namespace std;

int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        vector<int> vec(n); //动态数组,大小为n
        for(int i=0;i<n;i++){   //输入n个数
            scanf("%d",&vec[i]);
        }

        int x;
        scanf("%d",&x);

        vector<int>::iterator it;   //迭代器it用于获取find函数的返回值
        //find函数三个参数,起始位置,尾后位置,需要找的元素值;返回的是迭代器
        it=find(vec.begin(),vec.end(),x);
        if(it==vec.end()){  //若it等于尾后位置说明元素没有找到
            printf("-1\n");
        }else{  //找到了就返回下标
            //it加减数字->偏移  it-vec.begin()得到偏移量就是数组下标
            printf("%d\n",it-vec.begin());
        }

        /*int index;  //将下标定义在外面
        for(index=0;index<n;index++){
            if(vec[index]==x){
                printf("%d\n",index);
                return 0;   //找到就直接退出main函数
            }
        }
        if(index==n){   //出了上面的循环,没有找到x,是由于走到了vector的边界,此时没有一个符合条件
            printf("-1\n");
        }*/
    }

    return 0;
}

全部评论

相关推荐

03-23 22:04
江南大学 Java
程序员小白条:28届原因,这才研一,而且项目比较经典,东西也写的很简单,自我评价没啥用,应该写的是技术栈
点赞 评论 收藏
分享
03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务