Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorAlex Zolotarev <alex@maps.me>2015-03-26 20:00:04 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:41:29 +0300
commita93073c2b406d714d243006234de56946adcaacc (patch)
treea5affcf24b6fd9948b87fb69c2ad627fae914553 /base
parent0d03b829ee0334efa6e1640b72fd2ccc57712d34 (diff)
One more insert method for buffer_vector.
Diffstat (limited to 'base')
-rw-r--r--base/base_tests/buffer_vector_test.cpp30
-rw-r--r--base/buffer_vector.hpp5
2 files changed, 35 insertions, 0 deletions
diff --git a/base/base_tests/buffer_vector_test.cpp b/base/base_tests/buffer_vector_test.cpp
index cf1407f203..4d43fac388 100644
--- a/base/base_tests/buffer_vector_test.cpp
+++ b/base/base_tests/buffer_vector_test.cpp
@@ -164,6 +164,36 @@ UNIT_TEST(BufferVectorInsert)
}
}
+UNIT_TEST(BufferVectorInsertSingleValue)
+{
+ buffer_vector<char, 3> v;
+ v.insert(v.end(), 'x');
+ TEST_EQUAL(v.size(), 1, ());
+ TEST_EQUAL(v[0], 'x', ());
+
+ v.insert(v.begin(), 'y');
+ TEST_EQUAL(v.size(), 2, ());
+ TEST_EQUAL(v[0], 'y', ());
+ TEST_EQUAL(v[1], 'x', ());
+
+ v.insert(v.begin() + 1, 'z');
+ TEST_EQUAL(v.size(), 3, ());
+ TEST_EQUAL(v[0], 'y', ());
+ TEST_EQUAL(v[1], 'z', ());
+ TEST_EQUAL(v[2], 'x', ());
+ // Switch to dynamic.
+ v.insert(v.begin() + 1, 'q');
+ TEST_EQUAL(v.size(), 4, ());
+ TEST_EQUAL(v[0], 'y', ());
+ TEST_EQUAL(v[1], 'q', ());
+ TEST_EQUAL(v[2], 'z', ());
+ TEST_EQUAL(v[3], 'x', ());
+
+ v.insert(v.end() - 1, 'c');
+ TEST_EQUAL(v[3], 'c', ());
+ TEST_EQUAL(v[4], 'x', ());
+}
+
UNIT_TEST(BufferVectorAppend)
{
for (size_t initialLength = 0; initialLength < 20; ++initialLength)
diff --git a/base/buffer_vector.hpp b/base/buffer_vector.hpp
index d33cb825df..a9d8d9664d 100644
--- a/base/buffer_vector.hpp
+++ b/base/buffer_vector.hpp
@@ -368,6 +368,11 @@ public:
}
}
+ inline void insert(const_iterator where, value_type const & value)
+ {
+ insert(where, &value, &value + 1);
+ }
+
private:
void SwitchToDynamic()
{