gpt4 book ai didi

c++ - 在 Lemon Graph Library 中访问 vector 中的映射值

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:19 26 4
gpt4 key购买 nike

我有以下代码

typedef ListDigraph::NodeMap<string> Node_names;
vector<ListDigraph::Node> initial_state;
vector<Node_names*> P_names;
//some loop
{
Node_names name;
ListDigraph::Node state = graph.addNode();
initial_state = state;
name[state] = "state1";
P_names.push_back(&name);
}

void printin()
{
cout<<P_names[0][initial_state[0]]
}

在 printin 中我得到错误:

error: no match for ‘operator[]’ in ‘((Translator*)this)->Translator::Process_state_name.std::vector<_Tp, _Alloc>::operator[] [with _Tp = lemon::DigraphExtender<lemon::ListDigraphBase>::NodeMap<std::basic_string<char> >*, _Alloc = std::allocator<lemon::DigraphExtender<lemon::ListDigraphBase>::NodeMap<std::basic_string<char> >*>, std::vector<_Tp, _Alloc>::reference = lemon::DigraphExtender<lemon::ListDigraphBase>::NodeMap<std::basic_string<char> >*&, std::vector<_Tp, _Alloc>::size_type = unsigned int](0u)[((Translator*)this)->Translator::Process_initial_state.std::vector<_Tp, _Alloc>::operator[] [with _Tp = lemon::ListDigraphBase::Node, _Alloc = std::allocator<lemon::ListDigraphBase::Node>, std::vector<_Tp, _Alloc>::reference = lemon::ListDigraphBase::Node&, std::vector<_Tp, _Alloc>::size_type = unsigned int](0u)]’

我如何访问各州的名称....

最佳答案

您可能想要显示 P_names[0][...]或类似的东西。你的Node_names是一个定义,你可能不能像那样使用尖括号。把它想象成如果你删除了你的 typedef,你将不得不这样写:ListDigraph::NodeMap<string>[0][P_names[0]] .这有意义吗?

恐怕如果您不提供更多信息,我们真的无法为您提供更多帮助...

编辑:尝试(*P_names[0])["test"] ,也许就可以做到(前提是您拥有所有必要的元素)。

不过,您可以做的一件事是使用任意数量的临时变量。您真的需要了解什么类型是 P_names[0] , *P_names[0] , (*P_names[0])[...]等尝试编译代码,在纸上写下类名,看看some diagrams in the documentation 、绘制图表(用铅笔在纸上)、任何可以帮助您理解正在发生的事情

你正在使用一个不为人知的库,即使这里的人试图帮助你也很难,尤其是没有代码,或者更糟糕的是使用不是实际代码的代码...

关于c++ - 在 Lemon Graph Library 中访问 vector 中的映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172138/

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