假设我有一个带有10个元素的std::vector调用vec,我想创建一个std::vector包含vec的第2和第5个元素之间(包括)的所有元素的新元素.我可以看到我如何写一个for循环来做到这一点,但看起来STL copy()可以更简洁地做到这一点.但我并没有真正得到迭代器:我已经看到你如何使用start()和end()迭代从第一个元素到最后一个元素的向量,但是上面的情况如何,我想要一些略有不同的东西?谢谢.
您不需要使用第一个子集std::copy创建新的vector.您可以使用vector构造函数及其迭代器(此处为doc)来实现此目的:
std::vector<myType> vec = ...;
std::vector<myType> other(vec.begin() + 1, vec.begin() + 5);
Run Code Online (Sandbox Code Playgroud)
但是你必须确定,你没有超过vector限制,否则你将得到未定义的行为.