Tarjan: Difference between revisions
m
C++ classes made non-copyable
(Added C++ solution) |
m (C++ classes made non-copyable) |
||
Line 93:
#include <string>
#include <vector>
struct noncopyable {
noncopyable() {}
noncopyable(const noncopyable&) = delete;
noncopyable& operator=(const noncopyable&) = delete;
};
template <typename T>
Line 98 ⟶ 104:
template <typename T>
class vertex : private noncopyable {
public:
explicit vertex(const T& t) : data_(t) {}
Line 120 ⟶ 126:
template <typename T>
class graph : private noncopyable {
public:
vertex<T>* add_vertex(const T& t) {
Line 132 ⟶ 138:
template <typename T>
class tarjan : private noncopyable {
public:
using component = std::vector<vertex<T>*>;
|