动态生成数组

来源:互联网 发布:java任务调度框架 编辑:程序博客网 时间:2024/06/06 03:41

我们经常在函数内部要动态生成一个数组,这里列出常用的两种方法。下面通过把original[3]复制给一个新的数组copyversion来说明。


1.用vector

#include<iostream>#include<vector>using namespace std;void copy(int original[],int n){vector<int> secondchild;for(int i = 0; i < n;i++)secondchild.push_back(original[i]);}int main(){int a[3] = {1,30,400};copy(a,sizeof(a)/sizeof(a[0]));return 1;}



2.用指针

<span style="font-size:18px;">#include<iostream>using namespace std;void copy(int original[],int n){int *secondchild = new int[n];for(int i = 0; i < n;i++)secondchild[i] = original[i];}int main(){int a[3] = {1,30,400};copy(a,sizeof(a)/sizeof(a[0]));return 1;}</span>


-------------------------------我是分割线------------------------------------

4.22更新


今日突然发现,如果是要动态生成一个字符数组的话呢,不需要说明数组的长度,但是声明一个数字数组,就一定要声明数组的长度。

//将字符数组转为数字#include<iostream>#include<stdio.h>  //头文件using namespace std;int main(){int n;char* str = new char[];cin>>str;n = atoi(str);cout<<n;
        cout<<strlen(str);     //计算字符数组的长度return 1;}


以及,上面可以直接把str打印出来,就是整个字符数组的值,非常像字符串。但如果是数字指针的话,打印出来就是一个地址的值。

0 0
原创粉丝点击