diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index af07c28..92c74dc 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -47,6 +47,12 @@
     for (auto&& i : l)
       push (i);
   }
+  template <typename Iterable,
+	    hb_requires (hb_is_iterable (Iterable))>
+  hb_vector_t (const Iterable &o) : hb_vector_t ()
+  {
+    hb_copy (o, *this);
+  }
   hb_vector_t (const hb_vector_t &o) : hb_vector_t ()
   {
     alloc (o.length);
diff --git a/src/test-algs.cc b/src/test-algs.cc
index 0f6b1fb..fd69b51 100644
--- a/src/test-algs.cc
+++ b/src/test-algs.cc
@@ -26,6 +26,7 @@
 
 #include "hb.hh"
 #include "hb-algs.hh"
+#include "hb-set.hh"
 
 
 static char *
@@ -91,6 +92,35 @@
   assert (++hb_inc (x) == 3);
   assert (x == 3);
 
+  /* Test initializing vector from iterable. */
+  {
+    hb_set_t s;
+
+    s.add (18);
+    s.add (12);
+
+    hb_vector_t<int> v (s);
+
+    assert (v.length == 2);
+    assert (v[0] == 12);
+    assert (v[1] == 18);
+  }
+
+  /* Test initializing vector from iterator. */
+  {
+    hb_set_t s;
+
+    s.add (18);
+    s.add (12);
+
+    hb_vector_t<int> v (hb_iter (s));
+
+    assert (v.length == 2);
+    assert (v[0] == 12);
+    assert (v[1] == 18);
+  }
+
+  /* Test initializing vector from initializer list and swapping. */
   {
     hb_vector_t<int> v1 {1, 2, 3};
     hb_vector_t<int> v2 {4, 5};
@@ -101,6 +131,7 @@
     assert (v2[2] == 3);
   }
 
+  /* Test initializing sorted-vector from initializer list and swapping. */
   {
     hb_sorted_vector_t<int> v1 {1, 2, 3};
     hb_sorted_vector_t<int> v2 {4, 5};
