c++中map怎么使用
时间: 2023-04-12 21:01:20 浏览: 162
在 C 语言中,可以使用结构体和指针来实现类似于 map 的功能。具体实现方式可以参考以下代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_KEY_LEN 100
#define MAX_VALUE_LEN 100
typedef struct {
char key[MAX_KEY_LEN];
char value[MAX_VALUE_LEN];
} KeyValue;
typedef struct {
KeyValue *data;
int size;
} Map;
void init_map(Map *map) {
map->data = NULL;
map->size = 0;
}
void add_to_map(Map *map, char *key, char *value) {
KeyValue *new_data = realloc(map->data, (map->size + 1) * sizeof(KeyValue));
if (new_data == NULL) {
printf("Error: failed to allocate memory\n");
exit(1);
}
map->data = new_data;
strcpy(map->data[map->size].key, key);
strcpy(map->data[map->size].value, value);
map->size++;
}
char *get_from_map(Map *map, char *key) {
for (int i = 0; i < map->size; i++) {
if (strcmp(map->data[i].key, key) == 0) {
return map->data[i].value;
}
}
return NULL;
}
int main() {
Map map;
init_map(&map);
add_to_map(&map, "name", "John");
add_to_map(&map, "age", "30");
char *name = get_from_map(&map, "name");
char *age = get_from_map(&map, "age");
printf("Name: %s\n", name);
printf("Age: %s\n", age);
return 0;
}
```
这段代码实现了一个简单的 map,可以通过 add_to_map 函数添加键值对,通过 get_from_map 函数获取键对应的值。
阅读全文