Tarjan: Difference between revisions

216 bytes added ,  4 years ago
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>*>;
1,777

edits