How can mapping be implemented in the C language?

In C language, mapping functionality can be achieved through structures and arrays.

Firstly, define a struct that includes two members: a key and a value.

typedef struct {
    int key;
    int value;
} KeyValuePair;

Then, define an array to store multiple key-value pairs:

KeyValuePair map[100];
int mapSize = 0;

Next, we can implement some operation functions to add, delete, edit, and search for mappings.

  1. Add key-value pair:
void addKeyValuePair(int key, int value) {
    map[mapSize].key = key;
    map[mapSize].value = value;
    mapSize++;
}
  1. Search for a value based on a key.
int getValue(int key) {
    for (int i = 0; i < mapSize; i++) {
        if (map[i].key == key) {
            return map[i].value;
        }
    }
    return -1; // 找不到对应的键,返回-1或其他特定值
}
  1. Edit the value corresponding to the key.
void modifyValue(int key, int newValue) {
    for (int i = 0; i < mapSize; i++) {
        if (map[i].key == key) {
            map[i].value = newValue;
            break;
        }
    }
}
  1. Delete key-value pair:
void removeKeyValuePair(int key) {
    for (int i = 0; i < mapSize; i++) {
        if (map[i].key == key) {
            for (int j = i; j < mapSize-1; j++) {
                map[j] = map[j+1];
            }
            mapSize--;
            break;
        }
    }
}

In this way, simple mapping functionality can be achieved in C language. Of course, this is just a basic implementation, and for more complex functionalities, using existing open-source libraries or designing more advanced data structures could be considered.

bannerAds