Graph::EdgePath const
Graph::getReachable(int from, bool only_viewable,
- bool clear_visited, vector<int> excludes)
+ bool clear_visited, set<int> excludes)
{
EdgePath result;
queue<int> Q;
int const cv = (*cit)->to;
if (!vertices_[cv].visited) {
vertices_[cv].visited = true;
- if (find(excludes.begin(), excludes.end(), cv) == excludes.end())
+ if (excludes.find(cv) == excludes.end())
Q.push(cv);
}
}
}
-Graph::EdgePath const
- Graph::getReachable(int from, bool only_viewable,
- bool clear_visited, int exclude)
-{
- vector<int> excludes;
- excludes.push_back(exclude);
- return getReachable(from, only_viewable, clear_visited, excludes);
-}
-
-
-Graph::EdgePath const
- Graph::getReachable(int from, bool only_viewable,
- bool clear_visited)
-{
- vector<int> excludes;
- return getReachable(from, only_viewable, clear_visited, excludes);
-}
-
-
bool Graph::isReachable(int from, int to)
{
if (from == to)