More complete example using CString and Single struct -
#include <atlstr.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
struct Single {
long position;
CString code;
};
struct PanelData {
CString Error;
CString OrderNo;
bool PanelReported;
vector<Single> vecSingles;
};
bool pred(const PanelData& pd2)
{
vector<Single>::const_iterator found;
found = find_if(pd2.vecSingles.begin(), pd2.vecSingles.end(), [](const Single& s)->bool {return s.code == "4525325"; });
return found != pd2.vecSingles.end();
}
int main()
{
vector<PanelData> vData;
for (int i = 0; i < 10; i++)
{
PanelData pd2{ "", to_string(i).c_str(), false, {{i, to_string(i + 4525320).c_str()},{i+1, to_string(4525320).c_str()}} };
vData.emplace_back(pd2);
}
vector<PanelData>::iterator found;
found = find_if(vData.begin(), vData.end(), pred);
if (found != vData.end())
cout << "Order number is " << found->OrderNo << endl;
else
cout << "Not found!\n";
return 0;
}