在向量中查找值并返回对值的引用

时间:2014-08-25 10:07:54

标签: c++

我使用此功能在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;
    }
}

curl_accountsstruct

现在,当我在一个地方编辑struct中的某个值时,尝试在第二位检查它不一样。

那么你能修复我的功能吗?

修改::

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";

1 个答案:

答案 0 :(得分:-1)

您需要对指针的引用。尝试更改签名以使用curl_accounts *& tmp,而不是curl_accounts &tmp