diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h
index d588fa40fc878fb61c52041fc98c6716e8357fa6..242a536555425d21d466782581d252fc93429c32 100644
--- a/include/flatbuffers/flexbuffers.h
+++ b/include/flatbuffers/flexbuffers.h
@@ -946,6 +946,11 @@ class Builder FLATBUFFERS_FINAL_CLASS {
       EndVector(start, false, false);
     }
   }
+  template<typename T> void Vector(const char *key, const T *elems,
+                                   size_t len) {
+    Key(key);
+    Vector(elems, len);
+  }
   template<typename T> void Vector(const std::vector<T> &vec) {
     Vector(vec.data(), vec.size());
   }
diff --git a/tests/test.cpp b/tests/test.cpp
index 106a4792196d0294aef0a71347bc5cdf6cfb02a9..f74e9a8b8a05bfe587be2df0a34f7cdea7c32d4d 100644
--- a/tests/test.cpp
+++ b/tests/test.cpp
@@ -1373,8 +1373,8 @@ void FlexBuffersTest() {
       slb.IndirectFloat(4.0f);
     });
     int ints[] = { 1, 2, 3 };
-    slb.Add("bar", ints);
-    slb.FixedTypedVector("bar3", ints, sizeof(ints) / sizeof(int));
+    slb.Vector("bar", ints, 3);
+    slb.FixedTypedVector("bar3", ints, 3);
     slb.Double("foo", 100);
     slb.Map("mymap", [&]() {
       slb.String("foo", "Fred");  // Testing key and string reuse.