大佬们,求助!(关于二维动态数组的问题)谢谢大佬们
  • 板块学术版
  • 楼主gzn2333
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/9/25 04:45
  • 上次更新2023/11/2 18:13:03
查看原帖
大佬们,求助!(关于二维动态数组的问题)谢谢大佬们
230192
gzn2333楼主2023/9/25 04:45
就是比如说我创建了一个一维的动态数组t,然后这个数组里面我有5个元素都是0,然后我把这个t赋值给了另一个二维的动态数组mult,这样的话mult这个数组不是就一行吗,那我如果程序里面涉及访问了mult的第1行会咋样,会返回0嘛还是报错,或者是空。就比如我下面这个程序,当我输入3的时候,f函数里面第一个for循环第2次执行的时候就会涉及到访问mult数组的第i行,此时是1,而我的mult数组是只给了第一行的值的,所以请问这时候程序会自动把这个动态数组给补上嘛也就是,赋值0?

#include <bits/stdc++.h>
using namespace std;
int f(int str) {
int vect = str;
if (str * str * str < vect * vect++)return 0;
vector<int> t(vect, 0);
vector<vector<int>> mult = {t};
int prod = vect;
while (mult.size() <= prod) {
  	vector<int> t = {};
    for (int i = 0; i < mult.size(); i++) {
            t.push_back(mult[i][mult[i].size() - 1]);
  			mult[i].pop_back();  
	}
    prod--;
	for (int j = 0; j < t.size(); j++){
		if (mult[mult.size() - 1].size() == prod){
    		mult.push_back({t[j]});
		}else{
			mult[mult.size() - 1].push_back(t[j]);
	} 
	}  
}
  return (prod);
}

int main() {
  int n;
  while (1) {    
    cin >> n;
    cout << f(n) << endl;
  }
}
2023/9/25 04:45
加载中...