Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将int数组转换为c+中的int向量+;_C++_Arrays_Vector - Fatal编程技术网

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

C++ 将int数组转换为c+中的int向量+;,c++,arrays,vector,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);** } inta[]={1,2,3,4,5,6,7} 向量向量机; int指数=0; 对于(int i=0;i

我有一个类似这样的数组

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);**
}
inta[]={1,2,3,4,5,6,7}
向量向量机;
int指数=0;
对于(int i=0;i

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

std::vector vec(A+索引,A+sizeof(A)/sizeof(A[0])
是酷猫的工作方式。

您可以使用
索引,如下所示

#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) ) ;
#包括
inta[]={1,2,3,4,5,6,7};
int指数=0;
对于(int i=0;i
正如我在互联网上看到的,您可以使用插入方法将元素添加到向量中,您可以获得数组的所有元素,并使用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);**
}
inta[]={1,2,3,4,5,6,7}
向量向量机;
int指数=0;
对于(int i=0;i
有关更多信息,请参阅本文


为什么不能直接使用
vec.push_back()
这样填充向量?如果要复制整个数组int vector:
for(int i=0;i<7;i++)
vec.push_back(A[i])炫耀;-)。别忘了
#包括
std::begin
@Bathsheba的标题,因为它不是真正需要的。它保证包含在vector中,OP应该已经包含了它,因为他们使用的是vector。
insert
用于在特定位置插入元素。当开始使用空向量时,使用
向后推
更有意义
A.size()
?第一行缺少分号,
vec.insert()
@George的括号数量错误。我只是重新使用了作者的代码,以便他可以看到我对他的代码做了哪些修改。vec(A+指数,i);应该是评论。@BrankVictoria我之所以这么做的主要原因是,即使op的代码是正确的,你给出的答案也是不正确的。再加上,回馈坏代码并不是回答问题的好方法。如果你编辑答案,我就把dv拿下来。