У меня есть карта под названием NFA (см ниже)Доступ вектор внутри карты, которая находится внутри другой карты
map<string, NFANode*> nfa;
NFA заполнен объектами NFANode. (см. ниже)
class NFANode {
public:
string label;
map<string,vector<NFANode*> >tr;
bool accepting;
bool starting;
NFANode(string s, bool a, bool x){
accepting = a;
label = s;
starting = x;
}
};
Внутри каждого объекта есть еще один вызов карты tr и внутри tr есть вектор с информацией. Я пытаюсь получить доступ к вектору, чтобы распечатать каждый элемент вектора и не могу понять, как это сделать. Я пытаюсь использовать итератор без везения.
map<string, NFANode*>::iterator nfaIt;
for (nfaIt = nfa.begin(); nfaIt != nfa.end(); ++nfaIt){
cout << "content of tr are: " << nfaIt->second->tr->second << endl;
}
Любая помощь была бы принята с благодарностью.
'nfaIt-> second-> tr' выводит вас на внутреннюю карту' NFANode' в ваш внешний узел на вашей внешней карте. Что вы планируете делать оттуда? сбросить этикетку? Если когда-либо был класс, кричащий о том, что переопределение «ostream» заслоняет это. (и интеллектуальные указатели, но по одному шагу за раз). – WhozCraig
'tr' - это карта, это не итератор – billz
@billz мог позвонить. Я пропустил это. однако комментарий о вставке для потока стоит. Хорошо поймал. – WhozCraig