我创建了一个矢量:
std::vector<std::string> mero; // earlier it filled with more than 500 data
之后我想创建另一个向量,它只占用mero
向量的一部分。 (例如:从第100到第250)
答案 0 :(得分:11)
std::vector
的构造函数(this link中的数字4)带有两个迭代器。它构造了一个新的向量,包括从第一个迭代器(包括)到第二个迭代器(独占)的所有元素。
std::vector<std::string> partOfMero(mero.begin() + 100, mero.begin() + 250);
这将在新构建的向量中包含mero[100]
到mero[249]
。
答案 1 :(得分:5)
std::vector
有一个带两个迭代器的构造函数,因此您可以指定要复制的范围:
std::vector<std::string> v1;
std::vector<std::string>::const_iterator first = v1.begin() + 100;
std::vector<std::string>::const_iterator last = v1.begin() + 250;
std::vector<std::string> v2(first, last)
这将构建v2
,使其包含从v1.begin()+100
到v1.begin()+250
之前的所有元素的副本。
答案 2 :(得分:5)