std::vector<int> a;
std::vector<int> b;
std::vector<int> c;
b
とc
の要素を に追加して、これら 3 つのベクトルを連結したいと思いa
ます。これを行うための最良の方法はどれですか?またその理由は?
1)を使用してvector::insert
:
a.reserve(a.size() + b.size() + c.size());
a.insert(a.end(), b.begin(), b.end());
a.insert(a.end(), c.begin(), c.end());
b.clear();
c.clear();
2)を使用してstd::copy
:
a.reserve(a.size() + b.size() + c.size());
std::copy(b.begin(), b.end(), std::inserter(a, a.end()));
std::copy(c.begin(), c.end(), std::inserter(a, a.end()));
b.clear();
c.clear();
3)std::move
(から)を使用してC++11
:
a.reserve(a.size() + b.size() + c.size());
std::move(b.begin(), b.end(), std::inserter(a, a.end()));
std::move(c.begin(), c.end(), std::inserter(a, a.end()));
b.clear();
c.clear();