VECTOR
vector类为内置数组提供了一种替代的表示,通常建议使用vector。(但仍有许多程序环境必须使用内置数组),vector 是C++中的一个容器类型,vector类是随标准C++引入的标准库的一部分。
使用vector必须包含相关的头文件
#include
#include<vector> #include<iostream> #include<cstring> using namespace std; int main() { vector<vector<int> > a; vector<int> b; int temp; int i,j; for(i =0;i<5;i++) { b.clear(); for(j =0;j<5;j++) { cin>>temp; b.push_back(temp); } a.push_back(b); } for(i=0;i<5;i++) { for(j=0;j<5;j++) { cout<<a[i][j]<<" "; } cout<<"\n"; } return 0; }
vector<string> text; string word; int a=5; while((a--)&&cin>>word )//// && 短路问题 { text.push_back(word); } for(int i=0;i<text.size();i++) { cout<<text[i]<<" "; }
#include<iostream> #include<stdlib.h> #include<stdio.h> using namespace std; int main() { int *p; int i; p = (int *)malloc(sizeof(int)*5); for(i=0;i<5;i++) { cin>>p[i]; } for(i=0;i<5;i++) cout<<p[i]<<endl; free(p); return 0; }
#include<iostream> #include<stdlib.h> #include<stdio.h> using namespace std; int main() { int *p; int i; p = (int *)calloc(sizeof(int),5); for(i=0;i<5;i++) { cin>>p[i]; } for(i=0;i<5;i++) cout<<p[i]<<endl; free(p); return 0; }
malloc 与 calloc 在使用方法上基本上是差不多的。malloc它允许从空间内存池中分配内存,malloc()的参数是一个指定所需字节数的整数。colloc与malloc类似,但是主要的区别是存储在已分配的内存空间中的值默认为0,使用malloc时,已分配的内存中可以是任意的值. colloc需要两个参数,第一个是需要分配内存的变量的个数,第二个是每个变量的大小.
#include<iostream> #include<stdlib.h> #include<stdio.h> using namespace std; int main() { int ** p; int i,j; p = (int **)calloc(sizeof(int*),5); for(i =0;i<5;i++) { p[i] = (int *)calloc(sizeof(int),5); } for(i=0;i<5;i++) for(j =0;j<5;j++) cin>>p[i][j]; for(i=0;i<5;i++) for(j=0;j<5;j++) cout<<p[i][j]<<endl; for (int i= 0; i < 5; i++) { free(p[i]); } free(p); return 0; }
二维空间与一维空间主要的不同是:二维数组由一维数组组成,申请的空间要分别对每个一维空间申请。释放空间时也是如此,先释放每个一维空间,最后在释放二维空间。
#include<iostream> #include<iomanip> using namespace std; int main() { //一维空间申请 int m=9; int *p= new int[m]; for(int i=0;i<9;i++) { cin>>p[i]; } for(int i=0;i<9;i++) cout<<p[i]<<endl; delete []p; //二维空间申请方法一 int n=4,m=4; int tem =0; int **p = new int*[m]; for(int i=0;i<m;i++) { p[i] = new int[n]; } for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { p[i][j]=tem; tem++; } } for(int i=0;i<m;i++) for(int j=0;j<n;j++) cout<<p[i][j]<<endl; for(int i=0;i<m;i++) delete []p[i]; delete []p; //二维空间申请方法二 int (*q)[3] = new int[3][3]; for(int i=0;i<3;i++) for(int j=0;j<3;j++) cin>>q[i][j]; for(int i=0;i<3;i++) for(int j=0;j<3;j++) cout<<q[i][j]<<setw(3); delete []q; return 0; }
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句