typedef struct PIDInfo { FC_INT32 m_pid; FC_INT32 m_ppid; PIDInfo() :m_pid(-1) , m_ppid(-1) {} } STPIDInfo; typedef std::unordered_set<STPIDInfo> VECRUNPID; std::map<FC_STRING, VECRUNPID> m_mRunProcCache;如何添加一个k
时间: 2024-03-10 07:46:57 浏览: 169
要向`m_mRunProcCache`中添加一个键值对,即添加一个新的`FC_STRING`类型的键和一个`VECRUNPID`类型的值,可以使用`std::map`的`insert()`函数来完成。具体操作如下:
```c++
STPIDInfo pidInfo;
pidInfo.m_pid = 123;
pidInfo.m_ppid = 456;
FC_STRING key = "newKey";
auto it = m_mRunProcCache.find(key); // 查找key是否已经存在
if (it == m_mRunProcCache.end()) { // 如果key不存在
VECRUNPID vec;
vec.insert(pidInfo); // 将pidInfo插入vec中
m_mRunProcCache.insert(std::make_pair(key, vec)); // 将key和vec插入map中
} else { // 如果key已经存在
it->second.insert(pidInfo); // 将pidInfo插入对应的vec中
}
```
这段代码首先创建了一个`STPIDInfo`类型的对象`pidInfo`,并对其成员变量赋值。然后将要插入的键值对的键存储在`key`中。接着使用`std::map`的`find()`函数查找`key`是否已经存在,如果不存在,则创建一个新的`VECRUNPID`类型的向量`vec`,将`pidInfo`插入其中,并使用`std::make_pair()`函数创建一个键值对,将`key`和`vec`插入到`m_mRunProcCache`中。如果`key`已经存在,则直接在对应的`VECRUNPID`类型的向量中插入`pidInfo`即可。
阅读全文