vector 查找指定元素
方法一:
自己寫循環遍歷
方法二:
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 查找指定元素