将int数组转换为c ++中的int向量

时间:2016-11-29 13:30:01

标签: c++ arrays vector

我有一个像这样的数组

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);**
}

如何将数组转换为从特定索引开始的向量,如上所述?

3 个答案:

答案 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);**
}

有关更多信息,请参阅此帖子

insert an element into a specific position of a vector