C++ c+中的动态数组+;
我需要实现一个5x5动态阵列,其中 它的每一个元素都等于它的两个指数之和。例如,第一个元素(0,0)的值为0+0=0 这是我的密码:C++ c+中的动态数组+;,c++,arrays,pointers,multidimensional-array,C++,Arrays,Pointers,Multidimensional Array,我需要实现一个5x5动态阵列,其中 它的每一个元素都等于它的两个指数之和。例如,第一个元素(0,0)的值为0+0=0 这是我的密码: # include<iostream> using namespace std; int main() { int size =5; int *array=new int[size]; for (int i = 0; i < size; i++) delete [] array; return 0;
# include<iostream>
using namespace std;
int main()
{
int size =5;
int *array=new int[size];
for (int i = 0; i < size; i++)
delete [] array;
return 0;
}
#包括
使用名称空间std;
int main()
{
int size=5;
int*数组=新的int[大小];
对于(int i=0;i
我需要帮助来实现索引和。首先,您应该创建一个2d数组,而不仅仅是一个数组
void foo() {
int **a = new int*[5];
for (int i = 0; i < 5; i++)
a[i] = new int[5];
}
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
a[i][j] = i + j;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)
cout << a[i][j] << " ";
cout << endl;
}
for (int i = 0; i < 5; i++)
delete[] a[i];
delete[] a;
}
void foo(){
整数**a=新整数*[5];
对于(int i=0;i<5;i++)
a[i]=新整数[5];
}
对于(int i=0;i<5;i++)
对于(int j=0;j<5;j++)
a[i][j]=i+j;
对于(int i=0;i<5;i++){
对于(int j=0;j<5;j++)
cout您首先需要实现一个二维数组。:)
给你
#include <iostream>
int main()
{
const size_t N = 5;
int ( *array )[N] = new int[N][N];
for ( size_t i = 0; i < N; i++ )
{
for ( size_t j = 0; j < N; j++ ) array[i][j] = i + j;
}
for ( size_t i = 0; i < N; i++ )
{
for ( size_t j = 0; j < N; j++ ) std::cout << array[i][j] << ' ';
std::cout << std::endl;
}
delete [] array;
return 0;
}
#包括
int main()
{
常数大小N=5;
int(*数组)[N]=新int[N][N];
对于(大小i=0;i 对于(尺寸j=0;jC++
中没有内置的可调整大小的数组,因此,如果用动态的方法来调整大小,这是必须解决的问题。只要能够引用两个索引之和,自然的建议是使用函数而不是数组在“调整大小”问题上避免使用。不鼓励使用纯代码的答案。请提供解决OP问题的代码和解释。这很难阅读和维护。有更快更简单的方法实现2d数组。@hardmath答案最有帮助。OP询问如何实现5x5动态数组,我演示了如何实现。您可以在你自己对问题的回答中写下你自己的幻想。你的代码有助于构造和“破坏”2D数组,它是“动态”的,因为数组在堆栈上被分配了一个大小参数N
,但这可能不是“动态”的意思这是OP的想法。我不是你的反对者,但肯定对你的代码的一些解释会改善答案,并且几乎肯定会赢得我的支持票:)!@hardmath再次写下你自己的答案。怎么了?非常感谢你们大家帮了我,你的解释非常好,现在我明白了:)我通常没看到过这样做,但考虑到这里OP确实需要一个2D数组(因此每个col维度都是相同的),这很好。