I'm using this function to find value in vector
.
void program_data::find_curlAccountdata(int world, std::wstring login, std::wstring pass, curl_accounts & tmp){
std::unordered_map <int, std::vector<curl_accounts> > &t = curl_accountsdata; //world
std::vector<curl_accounts> &b = t[world];
std::vector<curl_accounts>::iterator & it = std::find_if(b.begin(), b.end(), [login, pass](curl_accounts& s) { return (s.name == login && s.pass == pass); });
if (it != b.end()){
tmp = *it;
}
}
And curl_accounts
is struct
.
Now when I edit some value in the struct
in one place, and try to check it in second place it not the same.
So could you fix my function?
EDIT::
curl_accounts tmp,tmp2;
program_data::getInstance().find_curlAccountdata(server, login, pass, tmp);
tmp.logged = true;
std::cout << "TMP LOGGED: "<< tmp.logged<<std::endl; // return true
program_data::getInstance().find_curlAccountdata(server, login, pass, tmp2);
std::cout << "TMP 2 LOGGED: " << tmp2.logged << std::endl; // return false
std::cout << "sth";