二维vector取值交叉遍历组合生成算法

该博客介绍了一种通过递归方法来获取二维vector中每维度取一个元素的所有组合方式。以输入[[a], [b1, b2], [c1, c2, c3]]为例,输出组合为[a_b1_c1, a_b1_c2, a_b1_c3, a_b2_c1, a_b2_c2, a_b2_c3]。此外,还提到了非递归实现的版本。" 105262866,8442185,使用 Behat 进行 PHP 端到端/集成测试,"['PHP', '集成测试', '行为驱动开发', '静态代码检查', '测试工具']
摘要由CSDN通过智能技术生成

通过递归求出二维vector每一维vector中取一个数的各种组合

输入:[[a], [b1, b2], [c1, c2, c3]]

输出:[a_b1_c1, a_b1_c2, a_b1_c3, a_b2_c1, a_b2_c2, a_b2_c3] 

vector<string> combination(vector<vector<string> > &dimensionalArr){
	int FLength = dimensionalArr.size();
	if(FLength >= 2){
		int SLength1 = dimensionalArr[0].size();
		int SLength2 = dimensionalArr[1].size();
		int DLength = SLength1 * SLength2;
		vector<string> temporary(DLength);
		int index = 0;
		for(int i = 0; i < SLength1; i++){
			for (int j = 0; j < SLength2; j++) {
				temporary[index] = dimensionalArr[0][i] +"_"+ dimensionalArr[1][j];
				index++;
			}
		}
		vector<vector<string> > new_arr;
		new_arr.push_back(temporary);
		for(int i = 2; i < (int)dimensionalArr.size(); i++){
			new_a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值