C++ 如何创建一个二维数组,其中所有行的大小都不相同,并且用户将指定每个行将具有多少元素?
目标是分配一个2d整数数组,列数和行数由用户输入。但是在这里,行的大小不能相同,并且用户将指定单个行将包含多少元素。(这是我不理解的部分)然后我们必须通过获取用户输入为数组元素赋值,然后打印值。这就是我到目前为止所想到的。我做错了什么?我需要改变什么C++ 如何创建一个二维数组,其中所有行的大小都不相同,并且用户将指定每个行将具有多少元素?,c++,multidimensional-array,C++,Multidimensional Array,目标是分配一个2d整数数组,列数和行数由用户输入。但是在这里,行的大小不能相同,并且用户将指定单个行将包含多少元素。(这是我不理解的部分)然后我们必须通过获取用户输入为数组元素赋值,然后打印值。这就是我到目前为止所想到的。我做错了什么?我需要改变什么 #include<iostream> using namespace std; int main() { int row,col; cout<<"How many rows do you want?
#include<iostream>
using namespace std;
int main() {
int row,col;
cout<<"How many rows do you want? ";
cin>>row;
cout<<"How many columns do you want? ";
cin>>col;
int** arr = new int*[row];
for(int i = 0; i < row; i++){
arr[i] = new int[col];
}
for(int i = 0; i < row; ++i){
for(int j = 0; j < col; j++){
cout<<"R "<<i+1<<" C "<<j+1<<" value: ";
cin>>arr[i][j];
}
}
cout<<"Output array: \n";
for(int i = 0; i < row; ++i){
for(int j = 0; j < col; j++){
cout<<arr[i][j]<<"\t";
}
cout<<endl;
}
}
#包括
使用名称空间std;
int main(){
int row,col;
库特罗;
库特尔;
int**arr=新int*[行];
对于(int i=0;i
cout我只会使用嵌套的std::vector
来代替。此外,由于您希望每行的大小不同,因此必须向用户询问每行的大小:
#include <iostream>
#include <vector>
int main() {
int row;
std::cout << "How many rows do you want? ";
std::cin >> row;
std::vector<std::vector<int>> arr(row); // makes a vector of empty int vectors
for (int i = 0; i < row; ++i) {
int col;
std::cout << "How many columns do you want? ";
std::cin >> col;
for (int j = 0; j < col; j++) {
std::cout << "R " << i + 1 << " C " << j + 1 << " value: ";
int value;
std::cin >> value;
arr[i].push_back(value);
}
}
std::cout << "Output array: \n";
for (auto &v : arr) {
for (int &i : v) {
std::cout << i << "\t";
}
std::cout << std::endl;
}
}
#包括
#包括
int main(){
int行;
标准::cout>行;
std::vector arr(row);//生成空int向量的向量
对于(int i=0;icol;
对于(int j=0;j std::cout我只会使用嵌套的std::vector
。此外,由于您希望每一行的大小不同,因此您必须向用户询问每一行:
#include <iostream>
#include <vector>
int main() {
int row;
std::cout << "How many rows do you want? ";
std::cin >> row;
std::vector<std::vector<int>> arr(row); // makes a vector of empty int vectors
for (int i = 0; i < row; ++i) {
int col;
std::cout << "How many columns do you want? ";
std::cin >> col;
for (int j = 0; j < col; j++) {
std::cout << "R " << i + 1 << " C " << j + 1 << " value: ";
int value;
std::cin >> value;
arr[i].push_back(value);
}
}
std::cout << "Output array: \n";
for (auto &v : arr) {
for (int &i : v) {
std::cout << i << "\t";
}
std::cout << std::endl;
}
}
#包括
#包括
int main(){
int行;
标准::cout>行;
std::vector arr(row);//生成空int向量的向量
对于(int i=0;icol;
对于(int j=0;j std::cout尝试使用std::vector
而不是T*
指向堆分配内存:vector
自动分配和删除其数据,正确复制自身,为算法等提供接口。提示:当前代码打印了多少次“您想要多少列?”,需要打印多少次才能提示“用户”指定“各行将包含多少元素”尝试使用std::vector
而不是指向堆分配内存的T*
:vector
自动分配和删除其数据,正确复制自身,为算法提供接口等。提示:当前代码打印了多少次“您想要多少列?”,需要打印多少次才能提示“用户”指定“各行将包含多少元素”