Доступ к значениям карты в векторе в библиотеке графов лимонов

у меня есть следующий код

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]]
}

В печати я получаю сообщение об ошибке:

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)]’

как мне получить доступ к названиям штатов ….

1

Решение

Вы, вероятно, хотите отобразить 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])[...] и т. д. Попробуйте скомпилировать код, написать имена классов на бумаге, взглянуть на некоторые диаграммы в документации, рисовать диаграммы (карандашом на бумаге), все, что может помочь вам понять, что происходит.

Вы используете библиотеку, которая не очень известна, и даже если люди здесь пытаются помочь вам, это действительно сложно, особенно без кода или, что еще хуже, с кодом, который не является реальным кодом …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]