diff --git a/src/gn/pointer_set.h b/src/gn/pointer_set.h
index 6dc18b4..2bec930 100644
--- a/src/gn/pointer_set.h
+++ b/src/gn/pointer_set.h
@@ -6,6 +6,8 @@
 #define SRC_GN_POINTER_SET_H_
 
 #include <functional>
+#include <vector>
+
 #include "gn/hash_table_base.h"
 
 // PointerSet<T> is a fast implemention of a set of non-owning and non-null
@@ -187,6 +189,16 @@
     return true;
   }
 
+  // Convert this to a vector, more convenient and slightly faster than using
+  // std::vector<T*>(set.begin(), set.end()).
+  std::vector<T*> ToVector() const {
+    std::vector<T*> result(this->size());
+    auto it_result = result.begin();
+    for (auto it = this->begin(); it.valid(); ++it)
+      *it_result++ = *it;
+    return result;
+  }
+
  private:
   // Lookup node matching a given pointer. If result->valid() is true
   // then the pointer was found, otherwise, this is the location of
diff --git a/src/gn/pointer_set_unittest.cc b/src/gn/pointer_set_unittest.cc
index 0bb4d6a..e71a97d 100644
--- a/src/gn/pointer_set_unittest.cc
+++ b/src/gn/pointer_set_unittest.cc
@@ -5,6 +5,8 @@
 #include "gn/pointer_set.h"
 #include "util/test/test.h"
 
+#include <algorithm>
+
 struct Foo {
   int x;
 };
@@ -165,3 +167,15 @@
   EXPECT_EQ(set1, set);
   EXPECT_EQ(set2, set);
 }
+
+TEST(PointerSet, ToVector) {
+  TestPointerSet set(kFullList.begin(), kFullList.end());
+  auto vector = set.ToVector();
+  EXPECT_EQ(vector.size(), kFullList.size());
+
+  // NOTE: Order of items in the result is not guaranteed
+  // so just check whether items are available in it.
+  EXPECT_NE(std::find(vector.begin(), vector.end(), kFoo1), vector.end());
+  EXPECT_NE(std::find(vector.begin(), vector.end(), kFoo2), vector.end());
+  EXPECT_NE(std::find(vector.begin(), vector.end(), kFoo3), vector.end());
+}
\ No newline at end of file
