Помощник написания кода на С++

6. Начало автоматов

#include<iostream>
#include<map>
#include<string>

using namespace std;

struct State{
    map<char, State*> paths;
    string name;
    bool end = false;
};

int main() {
//--------------------------------------------------
    map<char,int> data;
    data['a'] = 1;
    data['b'] = 2;
    for(auto i : data) {
        cout << i.first << " " << i.second << endl;
    }
    if(data.find('c') == data.end()) {data['c'] = 0;}
    cout << data['c'] << endl;
//--------------------------------------------------

    State begin;
    State* current = &begin;
    string str = "abaab";
    for(char i : str) {
        current = current -> paths[i];
    }
}