C++ 如何将Vector1.end()连接到Vector2.begin();(不带out.插入)

C++ 如何将Vector1.end()连接到Vector2.begin();(不带out.插入),c++,c++11,vector,iterator,stdvector,C++,C++11,Vector,Iterator,Stdvector,我想我们可以连接VEC1的结尾和VEC2的开头,但如何连接 范例 VEC1: (VEC1.begin())->'H'->'A'->'P'->'P'->'Y'->(VEC1.end) VEC2: (VEC2.begin())->'1'->'2'->'3'->'4'->(VEC2.end) //VEC1.insert():但这意味着每次O(n)时我们都会将 VEC1=快乐1234 VEC2=1234 所以它必须像O(2)那样做 VEC1: (VEC1.begin())->'H'->'A'->'

我想我们可以连接VEC1的结尾和VEC2的开头,但如何连接

范例

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

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

//VEC1.insert():但这意味着每次O(n)时我们都会将

VEC1=快乐1234

VEC2=1234

所以它必须像O(2)那样做

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

………..uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

………..………....uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu124;

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

………..uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

VEC1=快乐1234

VEC2=NULL;(空)


所以,请告诉我如何通过地址或其他方式连接2向量

我知道您希望在vec1末尾移动vec2的内容,但不复制任何内容。您可以使用std::move:

#include <utility>

std::size_t size = a.size();
a.resize(size + b.size());
std::move(b.begin(), b.end(), a.begin() + size);
#包括
std::size_t size=a.size();
a、 调整大小(大小+b.size());
标准::移动(b.开始(),b.结束(),a.开始()+大小);

如果这应该是一个ASCII图表,那么它就有点乱七八糟了。你所说的O(2)是什么意思?由于你的问题缺乏格式,很难说出你在问什么。重复:使用这个答案:@NathanOliver no.因为那是有道理的。@Yakk我知道这不是OP想要的答案,但这是他们想要的唯一方法。