关于c++的数组与算法

《C++big》 数组和向量(1)

 

世代相传

桌子上的阿萨姆,专业答题,

熟悉数组和向量存储值;

定义数组

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 的值的时候就会溢出值:

00000

int apper[5] ={0};

int size=5;
   int number[size]={0} ;
    size =6; // 这个时候由于内存不够,咋办。因为数组是连续的内存地址的:     
00000bug

int temp_number[4]={1,2} ; 剩下的两个数组怎么理解;

1200

对于数组多出来的数组系统自动归位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++;
     }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老鬼城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值