我正在尝试使用带有以下代码的迭代器从int的另一个子向量中提取int的子向量:

std::vector<int> Original;std::vector<int> NewVec;
NewVec(Original.begin(), Original.begin()+5);


而且这不起作用,只有当我在相同的提取行中声明NewVec时才这样:

std::vector<int> NewVec(Original.begin(), Original.begin()+5);

因此,可以使用NewVec使其声明在构造之前吗?
谢谢。

最佳答案

如果要将子范围分配给现有的std::vector,则可以使用assign()成员:

NewVec.assign(Original.begin(), Original.begin() + 5);


当然,这假定Original至少具有5个元素。

关于c++ - 使用迭代器从 vector 中提取子 vector ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34062130/

10-16 04:39