有没有办法将C 中的两个阵列连接并返回它们
Is there a way to concatenate two arrays in c++ and return them?
我在python中具有递归功能
def recon(i,j):
if i == 0 or j == 0:
return []
elif x[i-1] == y[j-1]:
return recon(i-1,j-1) + [x[i-1]]
elif table[i-1,j] > table[i,j-1]:
return recon(i-1,j)
else:
return recon(i,j-1)
我试图将其重写在C 中,但问题是行
return recon(i-1,j-1) + [x[i-1]]
我这样做的是C ,但是它会编译,有什么方法可以像Python这样的连接阵列并返回它们。
不带数组。但是您可以使用向量进行此操作。
vector<int> x = ...;
vector<int> y = ...;
x.insert(x.end(), y.begin(), y.end()); // append y to x
您可以通过动态分配的内存进行类似的东西,但是使用向量更容易。
可能是您可以尝试此
for(int j=0;j<10; j++)
mer[j]=a[j];
for(int i=0; i<10; i++, j++)
mer[j]=b[i];
其中MER,A和B已经初始化数组变量。
您需要创建一个新的数组,该数组是正确的大小以包含现有数组,然后循环循环以复制它们(不要忘记在目标数组上保留偏移量在第二个复制时)
似乎不必要递归:
vector<int> recon(int i, int j) {
vector<int> ret;
while(i > 0 && j > 0)
if(x[i-1] == y[j-1])
ret.push_back(x[--i]), --j;
else if(table[i-1][j] > table[i][j-1])
--i;
else
--j;
std::reverse(ret.begin(), ret.end());
return ret;
}
(免责声明:未测试)
相关文章:
- 将一个阵列中的数据存储到另外两个阵列中不起作用
- 比较两个std::矢量/阵列,或者通常比较两个stl连续器
- 使用两个不同大小的一维阵列制作 2D 阵列
- 如何计算两个C 阵列的结合
- 为什么Xor-ing两个“ char”阵列显示垃圾位
- 如何在C/ C 中比较两个char的两个2D阵列
- 如何返回通过memcpy函数修改的两个阵列
- 两个未分类阵列之间的最小差异
- 当我尝试创建两个后缀阵列时,为什么要获得EXC_BAD_ACCESS错误
- 阵列C 中两个点函数之间的距离
- 在C 中乘以两个char阵列
- 为什么这两个char阵列不相等
- 两个最大的连续子阵列
- 在C/C 中将两个2-D阵列初始化为零
- Qthread char阵列在两个线程之间传递后被摧毁
- 使用两个平行阵列C
- 两个不同形状BST的阵列形式总是具有非平等数组
- 映射1D阵列,有两个分
- 两个分类阵列的中位数不同
- 如何比较两个QString阵列Qt C++