C++中动态与静态数组用法

    科技2024-12-11  24

    在使用c++进行数据处理时,常常会涉及到数组的使用,数组可以分为静态数组与动态数组,其中静态数组长度已被限制,往往无法满足实际需要。现在主要对动态数组的使用进行小结。1、静态数组的声明 如声明长度为10的整数一维数组int array[10] ; 其他类型的一维数组声明类似,不再进行详述。注: int array[变量]  程序报错:变量必须是个常量2、动态数组的声明及使用 原理:动态数组是通过云算符new进行创建,而数组变量实际上是个指针,因此利用new符号创建的数组,可以当成一般数组对待。(1)如何创建动态数组并赋值

    #include<iostream> #include<vector> using namespace std; void main() { int a = 10; double *doublePtr;//声明数组类型指针:double类型的数组指针 doublePtr = new double[a];//开辟相应的内存空间 for (int i = 0; i < a; i++)//最后对其进行赋值 { doublePtr[i] = a - i; } }

    (2) 二维动态数组的申明与使用 1.静态二维数组的申明,较为简单,格式如下: 类型 变量名[][]如double array[2][3]; 这样就是说其行列明确,否则出错。 2. 动态二维数组的申明 以申明double array[m][n]为例进行讲解double  **array; array=new double *[m];//申明行数 for(int i=0;i<m;i++) {             array[i]=new double[n];//申明每一行的列数 }  即可完成,即使用了两次一维动态数组申明。

    #include <iostream> using namespace std; #include<string> void main() { int m = 5; int n = 2; double **array; array = new double *[m];//先定义有多少行 有5行 for (int i = 0; i < m; i++) { array[i] = new double[n];//再定义每一行有多少列  有6列 } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { array[i][j] = 1; } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << array[i][j] << "\t"; } cout << endl; } system("pause"); }

    (3)如果一个二维数组作为一个函数中参数,该如何使用,思想是容器的容器 如求取一个二维数组中所有元素之和的函数

    #include<iostream> #include<vector> using namespace std; double sum(const vector<vector<double>> vec_vec_a) { double m_sum = 0; for (int i = 0; i < vec_vec_a.size(); i++)//行数 { for (int j = 0; j < vec_vec_a[i].size(); j++) { m_sum += vec_vec_a[i][j]; } } return m_sum; } void main() { vector<double> a, b;//a b的容器尺寸可以不一样大 a.push_back(1); a.push_back(1); a.push_back(1); b.push_back(2); b.push_back(2); vector<vector<double>> c; c.push_back(a); c.push_back(b); for (int i = 0; i < c.size(); i++) { for (int j = 0; j < c[i].size(); j++) { cout << c[i][j] << "\t"; } cout << endl; } cout << sum(c) << endl; system("pause"); }

     

    Processed: 0.010, SQL: 8