当前位置:编程学习 > C/C++ >>

使用动态数组

1、定义一个指针类型
如:typedef   double*   DoubleArrayPtr;
2、声明一个指针变量
如: DoubleArrayPtr   a;
3、调用new
a =  new   double[ array_size ];
4:、动态数组的长度在方括号中给出
5、像普通数组那样使用
6、调用delete [ ]
如:delete  [ ]   a;
 
[cpp] 
// String.cpp : Defines the entry point for the console application. 
// 
 
#include "stdafx.h" 
#include<iostream> 
#include<cstdlib> 
#include<cstddef>///****** 
 
typedef int* IntArrayPtr;  ///(1) 
 
void fill_array(int a[] , int size); 
void sort(int a[] , int size); 
 
int main(int argc, char* argv[]) 

    using namespace std; 
    cout<<"This program sorts numbers from highest to lowest .\n"; 
 
    int array_size; 
    cout<<"How many numbers will be sorted?\n"; 
    cin>>array_size; 
 
    IntArrayPtr a;///(2) 
    ///创建动态数组 
    a = new int[array_size]; ///(3) 
     
    fill_array(a, array_size); 
    sort(a, array_size); 
 
    cout<<"In sorted order the numbers are :\n"; 
    for(int index = 0; index < array_size ; index++) 
    { 
        cout<<a[index]<<" "; 
    } 
    cout<<endl; 
 
    delete [] a;  //(5) 
    return 0; 

 
 
void fill_array(int a[] ,int size) 

    using namespace std; 
    cout<<"Enter "<<size<<" integers.\n"; 
    for (int index = 0; index < size ;index++) 
        cin>>a[index]; 

 
void sort(int a[] , int size) 

    int i , j ; 
     //选择排序 
    ///将数组降序排序 
    for(i = 0; i < size - 1 ; i++)  
        for( j = i +1; j < size ; j++) 
        { 
            if( a[i] < a[j] )    
            { 
                int temp = a[i]; 
                a[i] = a[j]; 
                a[j]  = temp; 
            } 
        } 


 

补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,