Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Lemon图形库中访问向量中的贴图值_C++_Lemon Graph Library - Fatal编程技术网

C++ 在Lemon图形库中访问向量中的贴图值

C++ 在Lemon图形库中访问向量中的贴图值,c++,lemon-graph-library,C++,Lemon Graph Library,我有以下代码 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;

我有以下代码

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]]
} 
typedef ListDigraph::NodeMap Node_name;
向量初始状态;
向量P_名称;
//一些循环
{
节点名称;
ListDigraph::节点状态=graph.addNode();
初始状态=状态;
名称[州]=“州1”;
P_名称。将P_向后推(&name);
}
void printin()
{
coutTranslator::Process_initial_state.std::vector::operator[][带_Tp=lemon::ListDigraphBase::Node,_Alloc=std::分配器,std::vector::reference=lemon::ListDigraphBase::Node&,std::vector::size_type=unsigned int](0u)]”

如何访问州的名称…

您可能希望显示
p_名称[0][…]
或类似的东西。你的
节点名称是一个定义,你可能无法使用那样的尖括号。想象一下,如果你删除了typedef,你就必须这样写:
ListDigraph::NodeMap[0][P\u name[0]]
。这有意义吗

如果你不提供更多的信息,恐怕我们帮不了你更多

编辑:试试
(*p_names[0])[“test”]
,也许这样就可以了(只要你有所有必要的元素)

不过,您可以做的一件事是使用任意多的临时变量。您确实需要了解什么类型是
p_名称[0]
*p_名称[0]
(*p_名称[0])[…]
等。尝试编译代码,在纸上写类名,看一看,画图表(在纸上用铅笔),任何可以帮助您了解正在发生的事情的内容


您正在使用一个不知名的库,即使这里的人试图帮助您,这也是非常困难的,尤其是没有代码,或者更糟糕的是,使用的代码不是实际的代码…

您可能希望显示
p\u名称[0][…]
或类似的东西。你的
节点名称是一个定义,你可能无法使用那样的尖括号。想象一下,如果你删除了typedef,你就必须这样写:
ListDigraph::NodeMap[0][P\u name[0]]
。这有意义吗

如果你不提供更多的信息,恐怕我们帮不了你更多

编辑:试试
(*p_names[0])[“test”]
,也许这样就可以了(只要你有所有必要的元素)

不过,您可以做的一件事是使用任意多的临时变量。您确实需要了解什么类型是
p_名称[0]
*p_名称[0]
(*p_名称[0])[…]
等。尝试编译代码,在纸上写类名,看一看,画图表(在纸上用铅笔),任何可以帮助您了解正在发生的事情的内容


您正在使用一个不知名的库,即使这里的人试图帮助您,这也是非常困难的,尤其是没有代码,或者更糟糕的是使用一个不是实际代码的代码…

节点名的定义是什么?如果它是一个
节点名
,您需要查看
ListDigraph::NodeMap
或其文档。Node\u name是用于将节点映射到名称的NodeMap…是的,但什么是
Node\u name
?哦..对不起…我的错..我将其编辑到了正确的版本您使用的是什么?
Node\u name
的定义是什么?如果是
Node\u name
,您需要查看
ListDigraph::NodeMap
或其documentation.Node\u names是一个用于将节点映射到名称的NodeMap…是的,但是什么是
Node\u name
?哦..对不起…我的错..我将它编辑到了正确的版本您使用的是什么?但是p\u names[0]指的是一个映射对象,初始状态[0]指的是图中的一个顶点…如果我们通常有一个映射对象,比如..g和顶点对象v…那么g[v]本来可以工作…但是为什么p_名称[0][initial_state[0]]给出错误…ListDigraph::NodeMap[0][p_名称[0]]也可以工作吗?我不是说它可以工作,我在编辑之前回答了(或者至少在看到编辑之前发布了这个答案).是的,这是我的错。我忘了更新问题。P_names实际上存储了指向地图的指针,也许这就是问题所在。我如何取消指针的引用,以便使用该对象的函数。谢谢你的帮助。我使用了cout@vigenere我更新了我的答案,如果取消引用指针,可能需要添加括号类似于
(*P_name[0])[…]
但是P_name[0]指的是一个映射对象,而初始状态[0]指的是图中的一个顶点……如果我们通常有一个映射对象,比如说..g和顶点对象v…那么g[v]就可以工作了……但是为什么P_name[0][initial_state[0]]会给出错误……hw也可以列出有向图..节点映射[0][P_name[0]]工作?我不是说它会工作,我在你编辑之前回答(或者至少在看到你的编辑之前发布了这个答案).是的,这是我的错。我忘了更新问题。P_names实际上存储了指向地图的指针,也许这就是问题所在。我如何取消指针的引用,以便使用该对象的函数。谢谢你的帮助。我使用了cout@vigenere我更新了我的答案,如果取消引用指针,可能需要添加括号是这样的
(*P_name[0])[…]
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)]’