当前位置:   article > 正文

C/C++ find函数、distance函数的解析和使用

C/C++ find函数、distance函数的解析和使用

一、find函数

        可以用于在容器里查找元素,如果存在返回值为该元素的迭代器指针,如果不存在则返回容器的最后一个元素后的迭代器指针end()。

1.例:在vector容器里查找

 vector<int>::iterator find(std::vector<int>::iterator, std::vector<int>::iterator, const int &)

其中 vector<int>::iterator为返回值,std::vector<int>::iterator, std::vector<int>::iterator为查找元素的范围,初始位置到末尾置,const int &为所需查找元素值。

 例:

  1. #include<algorithm>
  2. #include<iostream>
  3. #include<vector>
  4. using namespace std;
  5. int main(){
  6. int n;
  7. cin>>n;
  8. vector<int> arr;
  9. for(int i=0;i<n;i++){
  10. int x;
  11. cin>>x;
  12. arr.push_back(x);
  13. }
  14. vector<int>::iterator it=find(arr.begin(),arr.end(),1);
  15. if(it!=arr.end()){
  16. cout<<"找到了"<<endl;
  17. }else{
  18. cout<<"不存在";
  19. }
  20. }

二、distance函数

        返回从 first 走到 last 所需的自增数。若使用随机访问迭代器且 first 可从 last 抵达,则值可能为负。 

例: 

  1. #include<algorithm>
  2. #include<iostream>
  3. #include<vector>
  4. using namespace std;
  5. int main(){
  6. int n;
  7. cin>>n;
  8. vector<int> arr;
  9. for(int i=0;i<n;i++){
  10. int x;
  11. cin>>x;
  12. arr.push_back(x);
  13. }
  14. vector<int>::iterator it=find(arr.begin(),arr.end(),1);
  15. if(it!=arr.end()){
  16. int x=distance(arr.begin(),it);
  17. cout<<"找到了"<<endl;
  18. cout<<"所在位子为:"<<x<<endl;
  19. }else{
  20. cout<<"不存在";
  21. }
  22. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号