gpt4 book ai didi

c++ - 访问 map 内部的 vector ,该 map 位于另一个 map 内

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:41 25 4
gpt4 key购买 nike

我有一张名为 nfa 的 map (见下文)

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 内部有一个包含信息的 vector 。我正在尝试访问 vector 以打印出 vector 的每个元素,但无法弄清楚如何。我一直在尝试使用迭代器,但没有成功。

map<string, NFANode*>::iterator nfaIt;
for (nfaIt = nfa.begin(); nfaIt != nfa.end(); ++nfaIt){
cout << "content of tr are: " << nfaIt->second->tr->second << endl;

}

如有任何帮助,我们将不胜感激。

最佳答案

// iterate the outer map
map<string, NFANode*>::iterator nfaIt;
for (nfaIt = nfa.begin(); nfaIt != nfa.end(); ++nfaIt)
{
// iterate each inner map
map<string,vector<NFANode*> >::iterator trIt;
for (trIt = nfaIt->second->tr.begin(); trIt != nfaIt->second->tr.end(); ++trIt)
{
// iterate each vector in the inner map
vector<NFANode*>::iterator vecIt;
for (vecIt = trIt->second.begin(); vecIt != trIt->second.end(); ++vecIt)
{
NFANode* pNodeInVecInMapInMap = *vecIt;
}
}
}

关于c++ - 访问 map 内部的 vector ,该 map 位于另一个 map 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19073810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com