根据上面信息写一个函数,来维护一组key、value的关系。 key:imsi value:imsi、imei、common.eci、common.tac、last_time 要求,imsi相同时,以最后一条记录的value内容为准进行保存。
时间: 2024-03-23 16:42:46 浏览: 132
下面是一个参考实现:
```c++
#include <iostream>
#include <map>
#include <string>
#include <ctime>
using namespace std;
struct CommonInfo {
uint64_t imei;
uint32_t eci;
uint16_t tac;
time_t last_time;
};
void update(map<uint64_t, CommonInfo>& data, uint64_t imsi, uint64_t imei, uint32_t eci, uint16_t tac) {
CommonInfo info;
info.imei = imei;
info.eci = eci;
info.tac = tac;
info.last_time = time(nullptr);
data[imsi] = info;
}
int main() {
map<uint64_t, CommonInfo> data;
update(data, 123456789, 987654321, 12345, 6789);
update(data, 987654321, 111111111, 54321, 9876);
update(data, 123456789, 123123123, 11111, 2222);
update(data, 555555555, 222222222, 33333, 4444);
for (auto& d : data) {
cout << "imsi: " << d.first << ", imei: " << d.second.imei << ", eci: " << d.second.eci << ", tac: " << d.second.tac << ", last_time: " << d.second.last_time << endl;
}
return 0;
}
```
这个函数使用了 C++ 中的 map 容器来维护 key-value 关系。在 update 函数中,首先创建一个 CommonInfo 结构体对象,并将传入的参数赋值到该对象中。然后将该对象作为 value,imsi 作为 key,插入到 map 容器中。如果已经存在相同的 key(即相同的 imsi 值),则该条记录会被新的记录覆盖。最后,遍历整个 map 容器,输出其中的 key-value 对。
阅读全文