c++ map获取格数
时间: 2023-10-31 08:54:59 浏览: 158
C语言中的map是通过哈希表实现的,通常使用结构体数组来表示。如果你想获取map中键值对的个数,你需要在map结构体中添加一个变量来记录当前存储的键值对数量。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_SIZE 100 // 假设map的最大容量为100
typedef struct {
int key;
int value;
} KeyValuePair;
typedef struct {
KeyValuePair data[MAX_SIZE];
int size;
} Map;
void initMap(Map* map) {
map->size = 0;
}
bool put(Map* map, int key, int value) {
// 检查容量是否已满
if (map->size == MAX_SIZE) {
return false;
}
// 检查是否已经存在该键
for (int i = 0; i < map->size; i++) {
if (map->data[i].key == key) {
// 存在则更新值
map->data[i].value = value;
return true;
}
}
// 不存在则新增键值对
map->data[map->size].key = key;
map->data[map->size].value = value;
map->size++;
return true;
}
int getSize(Map* map) {
return map->size;
}
int main() {
Map myMap;
initMap(&myMap);
put(&myMap, 1, 10);
put(&myMap, 2, 20);
put(&myMap, 3, 30);
int count = getSize(&myMap);
printf("map的键值对个数:%d\n", count);
return 0;
}
```
在上面的示例代码中,`Map` 结构体中的 `size` 变量用于记录当前存储的键值对数量。通过 `getSize` 函数即可获取map的键值对个数。
阅读全文