У меня есть другая проблема, связанная с графической библиотекой Boost, на которую я не мог ответить сам, прибегая к помощи по поиску и чтению документации.Это не связано напрямую с моими другими вопросами, поэтому я подумал, что лучше начать новый поток.
У меня есть график с разметкой смежности и я использую связанные свойства, чтобы получить доступ к данным узлов и ребер.Для удобства я использую typedef для своего Graph.Таким образом, я могу получить доступ к данным, которые хранятся, например, для vertex_descriptor, набрав что-то вроде этого:
Graph[my_vertex_descriptor].setX(4);
Graph[my_vertex_descriptor].setY(10);
Теперь я хотел бы определить ссылку на объект хранения данных, чтобы иметь возможность набирать что-товот так:
typedef Graph[vertex_descriptor]::type Vertex;
Vertex v = Graph[my_vertex_descriptor];
v.setX(4);
v.setY(10);
С помощью этого или подобного подхода я стараюсь избегать ненужных пересчетов сопоставленного значения, к которому обращаются с помощью []operator
карты и конкретного объекта дескриптора.Мои вершины и ребра содержат много данных, поэтому в определенных ситуациях мой текущий код производит много пересчетов одного и того же значения для работы с этими данными.Это кажется уродливым.
Кто-нибудь знает, возможно ли достичь того, что я пытаюсь сделать?