我有一个像这样的数组
int A[] = {1, 2, 3, 4, 5, 6, 7}
vector<int> vec;
int index = 0;
for(int i = 0; i < A.size(); i++) {
if(some condition) {
index = i;
}
**vec(A + index, i);**
}
如何将数组转换为从特定索引开始的向量,如上所述?
答案 0 :(得分:5)
您可以按如下方式使用index
。
#include <iterator>
int A[] = {1, 2, 3, 4, 5, 6, 7};
int index = 0;
for(int i = 0; i < A.size(); i++) {
if( /* some condition */ ) {
index = i;
break;
}
}
std::vector<int> vec ( std::begin(A) + index, std::end(A) ) ;
答案 1 :(得分:1)
std::vector<int> vec(A + index, A + sizeof(A) / sizeof(A[0]));
就像酷猫一样。
答案 2 :(得分:-2)
正如我在互联网上看到的那样,您可以使用insert方法向向量添加元素,您可以获取数组的所有元素,并使用for循环将它们添加到向量中,如下所示:
int A[] = {1, 2, 3, 4, 5, 6, 7}
vector<int> vec;
int index = 0;
for(int i = 0; i < A.size(); i++) {
if(some condition) {
vec.insert(vec.begin()+index,A[i]));
index++;
}
**vec(A + index, i);**
}
有关更多信息,请参阅此帖子