Раз у тебя "info" лежит не в ключе, а в значении, то используй STL-овский алгоритм "find_if", перебирающий все value_type-элементы контейнера, с передачей в пользовательскую функцию (предикат). Сравниваемое значение нужно определить где-нибудь вне предиката. Того же результата можно добиться обычным перебором всех значений мапа в цикле for.
| Код | #include <map> #include <algorithm>
using namespace std;
typedef map<CString, CProcitem> MapProcArr;
// .....
DWORD lookUpProcessId = 0;
bool compare_func(const MapProcArr::value_type &val) { return val.second.info.th32ProcessID == lookUpProcessId; }
void Test() { MapProcArr proc_arr;
lookUpProcessId = 123; find_if(proc_arr.begin(), proc_arr.end(), compare_func); } | |