精华内容
下载资源
问答
  • 一维数组的声明 一维数组声明赢指出一下三点: 存储在每个元素的值的类型,如,int,float,可以是复合类型 数组名 数组中的元素数,数组的元素数必须用值大于等于1的常量表达式定义; 注意: 数组定义中的类型不能...

    数组是一种数据格式,能够存储多个同类型的值,一位数组可以用来实现线性表的顺序存储,哈希表等,二维数组可以用来保存图的邻接矩阵等。
    一维数组

    一维数组的声明

    一维数组声明赢指出一下三点:

    1. 存储在每个元素的值的类型,如,int,float,可以是复合类型
    2. 数组名
    3. 数组中的元素数,数组的元素数必须用值大于等于1的常量表达式定义;

    注意:

    数组定义中的类型不能是引用,即没有引用数组,这是因为引用是不能赋值的,而数组中的元素必须可以被赋值

    定义数组a的引用:

    int a[5] = {1, 2, 3, 4,5};
    int (&p)[5] = a;		//p是a的引用
    

    一维数组的初始化

    在定义数组时,为其元素提供一组用逗号分隔的初值,这些初值用花括号{}括起来。
    初始化分为5种情况:

    1. 不初始化
    2. 全初始化
    3. 部分初始化
    4. 满初始化
    5. 不指定大小初始化

    下面是实例:

    int array_one[5];	//不初始化
    int array_two[5] = {1, 2, 3, 4, 5};  //全初始化
    int array_three[5] = {1, 2,};	// 部分初始化,其他默认补0
    int array_four[5] = {1, 2, 3, 4, 5, 6, 7};  //满初始化,c语言不进行越界检查,不建议这样使用
    int array_four[] = {1, 2, 3, 4, 5};	//不指定大小初始化
    

    一维数组的遍历

    数组是通过下标来遍历的,下标从0开始

    #include <stdio.h>
    int main()
    {
    	int array[5] = {2, 4, 6, 8,10};
    	for(int i=0; i<5; i++)
    	{
    		printf("%d ", array[i]);
    	}
    	printf("\n");
    	return 0;
    }
    

    输出结果:

    2 4 6 8 10

    一维数组动态声明

    当数组的大小未知时候,需要动态声明一维数组,声明格式如下:
    
    int a = new int[n];
    

    数据使用完毕,使用:

    delete []a;
    

    来释放内存空间

    二维数组的声明与初始化

    二位数组是最常用的高维数组,一维数组可以看成是一行数据,二位数组像是一个表格,有行和列。
    二维数组
    二维数组初始化分成两种:

    1. 按行初始化
    2. 顺序初始化
    // 行初始化
    int ia[3][4] = {
    	{0, 1, 2, 3},
    	{4, 5, 6, 7},
    	{8, 9, 10, 11},
    };
    
    //顺序初始化
    int ib[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
    

    行初始化可以省略某些数字,其他填充0

    int ia[3][4] = {
    	{0, 1},
    	{4, 5, 6},
    	{8},
    };
    

    等价于

    int ia[3][4] = {
    	{0, 1, 0, 0},
    	{4, 5, 6, 0},
    	{8, 0, 0, 0},
    };
    

    在C++中规定,声明和初始化一个二维数组是,如果对二位数组的所有元素都赋值,第一维可以省略,如

    int array[][3] = {1, 2, 3, 4, 5, 6};
    

    相当于:

    int array[2][3] = {1, 2, 3, 4, 5, 6};
    

    行优先存储和列优先存储

    本质上,所有的数组在内存中都是一位线性的,不同语言采用的存储方式不同,有的采用行优先存储,有的采用列优先存储
    行优先存储指在内存中,先将二维数组的第一行按顺序存储,接着第二行,第三行…
    列优先存储指在内存中,先将二维数组的第一列按顺序存储,接着第二列,第三列…
    在C/C++中,二维数组是按行优先顺序存储的

    二维数组的动态声明

    int **a = new int* [m];
    for (int i = 0; i<m; i++)
    {
    	a[i] = new int [n];
    }
    

    相当于产生了一个二维数组a[m][n]。

    使用后,用:

    for(int i=0; i<m; ++i)
    {
    	delete []a[i];
    }
    delete[] a;
    

    来释放空间

    欢迎关注我的微信公众号:
    QR-code

    展开全文
  • 下面讨论把多种情况下的数组转化为一维数组的方法 1.flatten函数能将多维数组变成一位数组 2.concatenate函数是用于数组的连接操作,可将多个一维数组连接为一维数组 下面来看示例: 1.使用flatten函数将多维...

    下面讨论把多种情况下的数组转化为一维数组的方法
    1.flatten函数能将多维数组变成一位数组
    2.concatenate函数是用于数组的连接操作,可将多个一维数组连接为一维数组
    下面来看示例:
    1.使用flatten函数将多维数组变成一位数组

    arr4=np.array([[65,76,89,91],[31,42,45,61]],float)
    
    arr4
    Out[7]: 
    array([[ 65.,  76.,  89.,  91.],
           [ 31.,  42.,  45.,  61.]])
    
    arr4.flatten()
    Out[8]: array([ 65.,  76.,  89.,  91.,  31.,  42.,  45.,  61.])

    2.使用concatenate函数多个一维数组连接为一维数组

    import numpy as np
    
    arr1=np.array([10,22],float)
    
    arr2=np.array([31,42,45,61],float)
    
    arr3=np.array([65,76,89,91],float)
    
    np.concatenate((arr1,arr2,arr3))
    Out[5]: array([ 10.,  22.,  31.,  42.,  45.,  61.,  65.,  76.,  89.,  91.])

    3.使用concatenate函数实现flatten函数的功能
    可用于多维函数选出某几维连接成一维数组

    np.concatenate((arr4[0],arr4[1]))
    Out[9]: array([ 65.,  76.,  89.,  91.,  31.,  42.,  45.,  61.])

    示例图
    这里写图片描述

    展开全文
  • 1.一维数组转二维数组 /// <summary> /// 一维数组转2维数组(矩阵) /// </summary> /// <param name="obj"></param> /// <param name="len">矩阵行数</param> /// <...

    最近项目需要用到数组维度转换,网上资源较少,写一个分享与备用

    1.一维数组转二维数组

    /// <summary>
    /// 一维数组转2维数组(矩阵)
    /// </summary>
    /// <param name="obj"></param>
    /// <param name="len">矩阵行数</param>
    /// <returns></returns>
    public static T[,] OneD_2<T>(T[] obj,int len)
    {
        if (obj.Length % len != 0)
            return null;
        int width = obj.Length / len;
        T[,] obj2 = new T[len, width];
        for (int i = 0; i < obj.Length; i++)
        {
            obj2[i / width, i % width] = obj[i];
        }
        return obj2;
    }

    2.一维数组转三维数组

    /// <summary>
    /// 一维数组转3维数组
    /// </summary>
    /// <param name="obj"></param>
    /// <param name="len">一维长</param>
    /// <param name="wid">二维长</param>
    /// <returns></returns>
    public static T[,,] OneD_3<T>(T[] obj,int len,int wid)
    {
        if (obj.Length % (len* wid) != 0)
            return null;
        int height = obj.Length / (len * wid);
        T[,,] obj2 = new T[len, wid, height];
    
        for (int i = 0; i < obj.Length; i++)
        {
            //核心思想把握每个维度的值多久变一次与设置最大值,变化频率设置用除法,设置最大值用求余
            //第二及之后的维度最大值为自身维度最大值 -1(意思就是最后需要对自身维度最大值求余)
            obj2[i / (wid* height), (i / height) % wid, i % height] = obj[i];
        }
        return obj2;
    }

    3.二维数组转一维数组

    /// <summary>
    /// 二维数组转一维数组
    /// </summary>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static T[] TwoD_1<T>(T[,] obj)
    {
        T[] obj2 = new T[obj.Length];
        for (int i = 0; i < obj.Length; i++)
            obj2[i] = obj[i / obj.GetLength(1), i % obj.GetLength(1)];
        return obj2;
    }

    4.三维数组转一维数组

    /// <summary>
    /// 三维数组转一维数组
    /// </summary>
    /// <param name="obj"></param>
    /// <returns></returns>
    public static T[] ThreeD_1<T>(T[,,] obj)
    {
        T[] obj2 = new T[obj.Length];
        int wid = obj.GetLength(1);//GetLength从0开始
        int height = obj.GetLength(2);
        for (int i = 0; i < obj.Length; i++)
            obj2[i] = obj[i / (wid * height), (i / height) % wid, i % height];
        return obj2;
    }

     

    展开全文
  • 一维数组及二维数组

    2016-01-25 19:27:33
    C语言一维数组  float arr1[3] = {2.5,3.6,4.7};    OC一维数组(其实oc是没有一维数组 二维数组的概念的,但是可以实现一维数组和二维数组的功能)  NSArray *array1 = [NSArray arrayWithObjects:@2.5,@...

        C语言一维数组

        float arr1[3] = {2.5,3.6,4.7};

        

        OC一维数组(其实oc是没有一维数组 二维数组的概念的,但是可以实现一维数组和二维数组的功能)

        NSArray *array1 = [NSArray arrayWithObjects:@2.5,@3.6,@(4.7), nil];

        

        C语言二维数组

        float indexArray[2][3] = {{1.0,2.0,3.0},{4.0,5.0,6.0}};

        

        OC实现二维数组的功能

        NSArray *tempArr1 = [NSArray arrayWithObjects:@1.0,@2.0,@3.0, nil];

        

        NSArray *tempArr2 = [NSArray arrayWithObjects:@4.0,@5.0,@6.0, nil];

        

        NSArray *array11 = [NSArray arrayWithObjects:tempArr1,tempArr2, nil];

    展开全文
  • 常用的就是一维数组、二维数组。 一维数组 数组定义:数据就是相同数据元素的集合。 数组是一种引用数据类型。不属于基本数据类型。 (1) 如何定义(声明)一维数组? 声明格式:数据类型[] 数组名称; (2) ...
  • 1、一维数组的定义方式 一维数组的引用 一维数组的初始化 构造类型:把基本的数据类型{int,float,double,char}进行一些变换得到的数据类型。 数组就是构造类型。 //一维数组 定义方式: 类型说明 数组名字[常量...
  • 小结了一维数组和二维数组的创建与初始化、使用、存储、指针访问和几个小点
  • (4)数组分为:一维数组、二维数组、三维数组、多维数组。 (5)数组中存储的元素类型是统一的。 (6)数组长度不可改变,数组一旦创建,长度是不可改变的,固定的。 数组优点:查找效率高。因为数组中的存储...
  • C语言一维数组、二维数组传参 传递普通参数 float add2num(float num1, float num2); int main() { float num1, num2, num3; num1 = 1.1; num2 = 2.2; num3 = add2num(num1, num2); printf("num3 is %.2f\n", ...
  • 后面的整个内容将围绕着一维数组展开,并且在学习一维数组之后会介绍一些一维数组的操作和使用。 表达式使用 我们在遇到的表达式里面通常包括: 关系表达式: 赋值表达式:= ,+= , -=, ×=, /=...
  • 一维数组 1. 一维数组的创建与初始化 数组的创建: float arr[5];//5个浮点型的数组 int arr[120];//120个整型的数组 char arr[20];//20个字符型的数组 1、其中的[]是解引用操作符,它的操作数有两个:一个数组...
  • 一维数组和二维数组相关知识点

    千次阅读 2018-07-29 19:23:05
    一维数组: 创建   type_t arr_name [const_n] int arr1[10]; char arr2[10]; float arr3[10]; double arr4[2]; 初始化 int arr[10] = {1,2,3}; int arr1[]={1,2,3,4}; char arr2[3]={'a',98,'c'}; char arr3...
  • public static Bitmap ConvertToBinaryBitmap(float[][] data,float threshold){ //长宽根据实际更改,也可能是反过来的 //比如width=data[0].length; height=data.length; int width = data.length; int ...
  • 一维数组创建 #include<iostream> #include<iomanip> using namespace std; const int COL = 3; void display(int *arr,int n){ for(int i=0;i<n;i++){ cout<<arr[i]<<"\t"; } cout...
  • 一维数组的创建和初始化。 一维数组的使用。 一维数组在内存中的存储。 一维数组的指针访问。 二维数组的创建和初始化。 二维数组的使用。 二维数组在内存中的存储。 二维数组的指针访问。 一维数组的创建和初始...
  • 二维数组和一维数组的索引关系

    千次阅读 2017-03-27 21:24:43
    一、二维数组和一维数组的索引关系假设在主函数当中有行如A[size_A][size_B]的二维数组,当A[i]作为调用函数的元素调用子函数,将被认为第i行size_B个数组元素参与子函数的计算,特别要注意的是子函数当中的A[i]表示...
  • 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合...一维数组的定义方式 定义: 类型说明符 数组名 [常量表达式] 例如: int a[10] 说明整形数组a,有...
  • 如题,求用JAVA将wav音频写入double或float一维数组
  • //利用指针输出一维数组任意列的值 #include&lt;stdio.h&gt; int main() { int array[4]={1,2,3,4}; int (p)[4]; p=&amp;array; int i; scanf("%d",&amp;i); printf("%d",(*§+...
  • 1.一维数组 1.使用数组定义多个变量可以类比于for循环定义,相较而言,使用数组定义已知数量的多个变量操作更加简单,代码更少. 2.数组本身就是一个变量,只是数组存储了一组数据类型相同的数据,同一数组中输入不同...
  • 数组(1)一维数组

    2017-08-01 15:19:46
    一维数组 1.一维声明 数组类型[] 数组名称 或 数组类型 数组名称[] int[] arrayname 或 int arrrayname[] 2.一维数组的创建 数组的定义只是声明了数组类型变量,实际上数组在内存空间中并不存在,必须使用new...
  • I一、一维数组的定义 要使用数组,必须在程序中先定义数组,即通知计算机;由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。 定义数组的一般形式: 类型符 数组名 [常量表达式] (1)数组的命名规则和...
  • 一维数组设计一个程序,交换一维数组中最大元素与最小元素的位置,如{18,16,19,15,11,8}交换后为{18,16,8,15,11,19}。#include void main( ) { float a[6]={18,16,19,15,11,8}; int i,max,min,j,k,t; ...
  • 动态创建可变大小的一维数组,其关键在于正确计算数组所需的空间 大小。假设,我们要创建一个 float 型的数组,该数组的大小由变量 n 来 动态设定: //动态创建一维数组 float *pArr = (float)malloc(sizeof...
  • JAVA中一维数组和二维数组的定义

    万次阅读 多人点赞 2008-12-30 15:28:00
    在java中数组被看成是一个对象在定义数组时,有两种定义方法:int[] a 和int a[];第二种是C/C++对数组定义方式,对于JAVA...1 一维数组的定义 //定义包含三个元素的一维数组 //方法1,先new对象,然后再初始化每个元
  • 一维数组的声明,如:float[ ] a;或者 float a[ ] 二维数组的声明,如:float[ ][ ] a或者 float a[ ][ ] 数组声明后还不能使用,还要进行创建,给a分配地址入口。 一维数组创建,如 a=new float[4] 二维数组...
  • 概念详解:指针:指针与“int a”,...一维数组:定义一维数组之后,即在内存中分配一段连续的地址空间,如C语言中,int num[5],在32位系统中,int占据4个字节,现假设num[0]的地址空间为0x00000004,那么num[...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,122
精华内容 34,048
关键字:

一维数组float