问题是把原来的向量复制到我的向量中

problem copy original vector into my vector

本文关键字:向量 我的 复制 问题是 原来      更新时间:2023-10-16

我有一个问题:

如果我有:

void test (std::vector<int> *original)
{
    myvector = vector<int>();
    myvector.reserve(&original.size());
    copy(original.begin(),original.end(),back_inserter(myvector));
}

我想复制一个向量到原来的目标向量

我有三个错误:

错误1错误C2228: left of '。Size '必须有class/struct/union
错误2错误C2228:左'。Begin '必须有class/struct/union
错误3错误C2228:左'。End '必须有class/struct/union

为什么? ?

注意,original是一个指针。你必须这样写:

void test (std::vector<int> *original)
{
    myvector = vector<int>();
    myvector.reserve(original->size());
    copy(original->begin(), original->end(), back_inserter(myvector));
}

指针对->解引用,对.不解引用。&表示取地址

使用说明:

//if you create a new vector object!
std::vector<int> myvector(original->begin(), original->end());

//if you want to populate an already created vector object!
myvector.clear(); //if you want to erase existing elements!
myvector.insert(myvector.end(), original->begin(), original->end());

应该是original->size(), original->begin(), original->end()original是一个原始指针,你不能在它上面使用.,使用->来获得"指向对象的成员"。

original是指针-使用original->size() original->begin() original->end()

另外,myvector = vector<int>();最好换成myvector.clear();

这里似乎有一些关于指针的混淆。你已经传入了一个指针,所以应该用-> not来取消对它的引用。