Привет всем!у меня проблема... значит создал функцию с параметром указатель на функцию
void Graph::show_edge(void (*visit)(const string&, const string&)) const
{
for(size_t i = 0; i < m_edge.size(); i++)
for(size_t j = 0; j < m_edge[i].size(); j++)
if(m_edge[i][j])
visit(get_vertex(i), get_vertex(j));
}
else if(boost::regex_match(lineEdit->text().toStdString(), show_vertex))
{
pm_graph->show_edge([this](const string& str1, const string& str2)
{
pm_show->text_label("Вершина ");
pm_show->text_label(QString::fromStdString(str1));
pm_show->text_label(" смежна с вершиной ");
pm_show->text_label(QString::fromStdString(str2));
pm_show->text_label("\n");
});
pm_show->show_scroll();
}
void visit(const string& str1, const string& str2)
{
pm_show->text_label("Вершина ");
pm_show->text_label(QString::fromStdString(str1));
pm_show->text_label(" смежна с вершиной ");
pm_show->text_label(QString::fromStdString(str2));
pm_show->text_label("\n");
}
потом вызваю метод show_edge c параметром visit
else if(boost::regex_match(lineEdit->text().toStdString(), show_vertex))
{
pm_graph->show_edge(visit);
pm_show->show_scroll();
}