如何将 Vector1.end() 连接到 Vector2.begin(); (没有 .insert )

How to connect Vector1.end() to Vector2.begin(); ( with out .insert )

我认为我们可以将 VEC1 的末端连接到 VEC2 的开头,但是如何?

例子

VEC1 : (VEC1.begin()) -> 'H' -> 'A' -> 'P' -> 'P' -> 'Y' -> (VEC1.end)

VEC2: (VEC2.begin()) -> '1' -> '2' -> '3' -> '4' -> (VEC2.end)

.

// VEC1.insert() :但这意味着我们 .push_back() 每次 O(n)

VEC1 = 快乐 1234

VEC2 = 1234

.

.

所以它无论如何都要做 O(2)

VEC1 : (VEC1.begin()) -> 'H' -> 'A' -> 'P' -> 'P' -> 'Y' -> (VEC1.end)

。 . . . . . . . . . . . . . . . . . . . . . ___________________| . . . . . . . | . . . .

。 . . . . . . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . _____________| . . . .

。 . . . . . . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . | . . . . . . . . . . . . . . . . .

VEC2: (VEC2.begin()) -> '1' -> '2' -> '3' -> '4' -> (VEC2.end)

。 . . . . . . . . . . . | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . | . . . . . . . .

。 . . . . . . . . . . . __________________________________。 . . . . . .

.

.

VEC1 = 快乐 1234

VEC2 = NULL; (空)

.

那么,请告诉我如何通过地址或其他方式连接 2 个向量;

我了解到您想将 vec2 的内容移动到 vec1 的末尾,但不进行任何复制。你可以使用 std::move:

#include <utility>

std::size_t size = a.size();
a.resize(size + b.size());
std::move(b.begin(), b.end(), a.begin() + size);