码迷,mamicode.com
首页 > 其他好文 > 详细

vector 查找指定元素

时间:2017-07-07 13:12:33      阅读:455      评论:0      收藏:0      [点我收藏+]

标签:类型   基于   int   c_str   main   元素   定义类   标准   模板函数   

方法一:

  自己写循环遍历

 

方法二:

  vector<string> vec;

  vector<string>::iterator iter;

  string gpcode="SZ000001";

  iter = find(vec.begin(), vec.end(), gpcode);

  if(iter != vec.end())

  {

    //vec中存在"SZ000001"

  }

  else

  {

    //没找到

  }

 

注意:

  如果vector中保存的是自定义类型(结构体/类),则需要为该类型重载==操作符。

#include <stdio.h>
#include <vector>
#include <string>
#include <algorithm>  //是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模板函数。

class DemoStruct
{
  public:
  string gpcode;
  int ymd;
  vector<int> vec;
  DemoStruct()
  {
    ymd = 20170707;

    gpcode = "";
  }

  bool operator == (const DemoStruct & obj)  //重载 “==” 操作符
  {
    return obj.ymd == ymd && obj.gpcode == gpcode;  //具体匹配条件,可以自己设定
  }
};

int main()

{  

  vector<DemoStruct> vec_struct;

  DemoStruct demo;
  demo.gpcode = "SZ000001";
  demo.ymd = 20170707;
  demo.vec.push_back(0);
  vec_struct.push_back(demo);

  DemoStruct tmpdemo;
  tmpdemo.gpcode = "SZ000001";
  tmpdemo.ymd = 20170707;

  vector<DemoStruct>::iterator iter;
  iter = find(vec_struct.begin(), vec_struct.end(), tmpdemo);
  if (iter != vec_struct.end())
  {
    printf("%s","find it");
  }

  return 0;

}

vector 查找指定元素

标签:类型   基于   int   c_str   main   元素   定义类   标准   模板函数   

原文地址:http://www.cnblogs.com/SZxiaochun/p/7131361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!