C++中map的遍历方法
时间: 2023-10-19 08:06:56 浏览: 90
在C语言中,没有内置的map数据结构,需要手动实现。一种常见的实现方式是使用数组和结构体,其中结构体包含键和值两个成员。遍历map时,可以使用循环遍历数组并输出每个元素的键和值。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAP_SIZE 10
struct entry {
char *key;
int value;
};
struct entry map[MAP_SIZE];
void insert(char *key, int value) {
int i;
for (i = 0; i < MAP_SIZE; i++) {
if (map[i].key == NULL) {
map[i].key = key;
map[i].value = value;
return;
}
}
printf("Error: map is full\n");
}
int get(char *key) {
int i;
for (i = 0; i < MAP_SIZE; i++) {
if (map[i].key != NULL && strcmp(map[i].key, key) == 0) {
return map[i].value;
}
}
printf("Error: key not found\n");
return -1;
}
void print_map() {
int i;
printf("map:\n");
for (i = 0; i < MAP_SIZE; i++) {
if (map[i].key != NULL) {
printf("%s: %d\n", map[i].key, map[i].value);
}
}
}
int main() {
insert("one", 1);
insert("two", 2);
insert("three", 3);
insert("four", 4);
insert("five", 5);
printf("get(\"three\") = %d\n", get("three"));
printf("get(\"six\") = %d\n", get("six"));
print_map();
return 0;
}
```
输出:
```
get("three") = 3
Error: key not found
get("six") = -1
map:
one: 1
two: 2
three: 3
four: 4
five: 5
```
阅读全文