《C++big》 数组和向量(1)
桌子上的阿萨姆,专业答题,
0 熟悉数组和向量存储值;
定义数组
12 23.5 115<=100; 这些类型的数据;都可一用于数组的定义;
double i=0; 如果定义多个数据便可用数组定义 double i[10]={0};
double temp_mena[10];
for(int i=0;i<10;i++){
temp_mena[i]=0;//初始化每个数据;
}
当我们需要定义数组的时候,我们可以指定初始化值:
double temp_mena[ ]={12,23,45,56,67,67,86};
//这句话的含义是我们不用写出个数,系统主动帮我们分析出我们初始化的个数:
使用变量名指定数组的大小是一个好的想法:
const int size=10; //
int number[size]={0};
// 注意我们的const 是不可以省略的数据;
shs如果将const 省略了: 由于size 是变量 ,我们改变size 的值的时候就会溢出值:
0 | 0 | 0 | 0 | 0 |
---|
int apper[5] ={0};
int size=5;
int number[size]={0} ;
size =6; // 这个时候由于内存不够,咋办。因为数组是连续的内存地址的:
0 | 0 | 0 | 0 | 0 | bug |
---|
int temp_number[4]={1,2} ; 剩下的两个数组怎么理解;
1 | 2 | 0 | 0 |
---|
对于数组多出来的数组系统自动归位0;
关于定义数组(C++big) 的解析);
关于访问数组:
double number[4] ={23,12,89,10};//
//如果我们想找到关于nuber[2]的数据信息;
number[0] | number[1] | number [2] | number[3] |
---|
数组下标是从零开始的,所以数组的个数要减一; 及number[2]的对应位置是number[1]的那个位子;
试图访问下标的元素不在范围类就会报越界错误;
double vlase[10] ;
for(int i=0;i<=10;i++ ) {
cout<< vlase[i]<< endl;//对于i=10 的时候我们程序就会报错; 越界错误;
}
cout<< endl;
越界错误的概念是你访问了一个未知的内存地址: 好比你自家有三亩田,你种了四亩田,多出的那一亩田你没证据说明是你的,如果犯了越界错误,你的程序可能会崩溃, 因为原有的数据被你覆盖了, 如果原有的地址没有内容,那还好;
部分的填充数组:用循环来填数组:
const int caper=100;
double value[caper]; // 如果这个内存不够的话。
// 我们 就扩展数组;
int corrin_size =0;
double inpot;
while(cin>>input){
if(corrin>caper){
value[corrin_size] =input;
corrin_size++;
}
}
//关于数组的值我们用循环来接:
//打印数据;
int huanhang=0;
while(i< corrin_size){
cout<< value[corrin_size]<< " ";
if( huanhang=5) {
huanghang=0;
cout<< endl;
}
i++ ;
huanhang++;
}
常见的数组算法: 复制:
int sper[4] ={20,30.40,50} ; int luck_unkey[4];如何将sper 的数据组复制在luck_unkey[4]中;
int sper[4] ={20,30,40,50};
int luck_unkey[4];
for(int i=0;i<4;i++){
luck_unkey[i]=sper[i];
}
// 这样我们就可以复制得到了;
常见的数组算法:求平均求和;
int total=0;
int sum=0;
int avgr=0;
int temp_ment[] ={10,20,30,40,50,60} ;
int n =sizeof(temp_ment)/sizeof(int);
for(int i=0;i< n;i++){
sum = temp_mant[i]+sum;
avgr=avgr+temp_ment[i]/n;
}
cout << sum << endl;
cout<< avgr<< endl;
常见的数组算法: 最大值与最小值;
doube value[10] ={ 1,3,4,5,3,2,6,5,32,8} ;
在C语言中我们要自己写分析出个数; c++不用;
int d[]={12, 34 ,4 ,655,767};
int max=d[0];
int min =d[0];
int len_th =sizeof(d) /sizeof(int) ;
for(int i=0;i< len_th;i++){
if(d[i]>max) {
max =d[i];
}
if(d[i]<min){
min=d[i];
}
}
cout<< max<< endl;//关于
常见的数组的算法:插入元素;
int d[] ={120,455,323,54,5};
int n =sizeof(d)/sizeof(int);
for(int i=0;i<n;i++){
if(i>0){
cout<< " | ";
}
cout<< d[i];
}
//在两个元素中插入| 这个符号:
常见的数组的算法: 统计匹配项;
int count=0;
int max =100;
for(int i=0;i<(sizeof(d)/sizeof(int)) ; i++){
if( d[i]>=max){
count++;
}
}
常见的数组的算法: 线性搜索;
int d[] = { 12,34,56,32 };
int ops = 0;
int n = sizeof(d) / sizeof(int);
bool found = false;
while (ops < n && !found) {
if (d[ops] == 100) {
found = true;
}
else
ops++;
}