DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
一、vector
 
     1.判断某元素是否存在
         vector<string> vStr;
         
         int  nRet = std::count(vStr.begin(), vStr.end(),  "xiaochun" ); //判断vector中是否有 "xiaochun" 这个元素
         
     2.查找某个元素
     
         方法一:
 
           自己写循环遍历
 
 
         方法二:
 
           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中保存的是自定义类型(结构体/类),则需要为该类型重载==操作符。再用find
 
         #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)  const  //重载 “==” 操作符,函数最后的 const 别忘了,否则会报错。(详见:http://www.cnblogs.com/SZxiaochun/p/7731900.html)
           {
              return  ymd == obj.ymd && gpcode == obj.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;
         }
         
         
二、map
 
     1.判断某元素是否存在
         map< int , string> mapDemo;
         
         bool  bRet = mapDemo.count(100); //判断mapDemo中是否有 key = 100 的元素
         
     2.查找某个元素
         map< int , string>::iterator iter = mapDemo.find(100);
         if  (iter != m_Int.end())
         {
             //找到了
         }
         else
         {
             //没找到
         }
    
posted on 2022-05-20 12:27  DoubleLi  阅读(344)  评论(0编辑  收藏  举报