欢迎光临
我们一直在努力

C++学习笔记系列2-22

       修改元素

数组中的元素是可以修改的,修改方式就是找到对应的索引值进行修改,比如:

int arr[ 5 ] = { 35, 22, 78, 55, 60 };

索引号            0   1     2    3    4

如果想修改 78 ,它对应的索引号就是 2,我们可以这样操作

arr [ 2 ] = 42 ;

// 通过索引号就可以将对应位置的数值修改了。以上就是如何修改数组中某个特定元素的基础方式。在日常开发中我们基本是通过遍历数组形式,进行数值匹配,找到后将我们新值替换上去,其实方式就像是查找的升级版,即:先查询,再修改,同样我们可以使用上一篇的函数,对其进行一些改动即可。

#include <iostream>

using namespace std;

void func( int arr[ ] , int size, int num1, int num2  )//arr[ ] :数组,size :数组长度,num1 是想要修改的目标值, num2是替换值

{        

        bool find = false; // 这个变量是用于在没有与输入值匹配时,进行数据反馈的

        for (int i = 0; i < size  ; i++ )

        {        

                // 输入值会与每一轮循环得到的数组值进行 if语句的比较

                if ( num1 == arr[ i ] )

                     {        

                                find = true; // 进入 if语句,则说明输入值找到了和数组中一样的值,

                                                    我们将这个 bool 变量改为 true,然后输出下方内容,

                                                     输出完毕,则使用 break 跳出循环

                                arr [ i ] = num2;

                                break; // 跳出循环

                     }

        }     

       if ( ! find )

        {        

                cout << "没有与传入值一样的数值。" <<endl; 

        }

                        // 这里的 find 布尔值,通过对 find 取值的判断决定是否进入,如果

                           我们在for循环中始终没有满足  num == arr[ i ] 这个条件,则说明该数组

                           没有与输入相同的元素,那么 find 的值就没有被修改,还是初始值:false,

                           这里判断条件为“取反”,则将 false 改为 true,因此满足 if 条件,

                           则进入该语句块,输出下方内容,即:没有与传入值一样的数值。

                           但是,一旦上方 for循环满足 num == arr[ i ] 这个条件,则语句块中的

                           find 就被改为 true,跳出循环后,再来到 if ( ! find )这里,

                           取反后 就变为false,则不能进入该语句块,所以也就不会输出下面的内容了。

}

 

int main()

{

        

        int arr[ 5 ] = { 15, 21, 39, 88, 96 };

        cout<<"原数组:";

        for(int i = 0 ; i < 5 ; i++ )

        {

                cout << arr [ i ] << " "; 

        } // 先输出一遍原数组内容

        // 调用函数,传入参数,将 88 改为 77

        func(arr, 5, 88, 77);    

        cout<<"新数组:";

        for(int i = 0 ; i < 5 ; i++ )

        {

                cout << arr [ i ] << " "; 

        }

        // 再传入一个数组中没有的元素

        func(arr, 5, 26, 77);    

}

输出:原数组:15 21 39 88 96

          新数组:15 21 39 77 96

          没有与传入值一样的数值。

 

通过这个案例,我们看到修改数组元素就是先进行查找,找到了就可以修改,并且是直接替换这个索引号处的值,在实际应用中这个方法也是较为常见的,开始讲的那种是最最初级的方式,它是修改元素的基础,但不是主要应用手段。这个案例才是应用较为广泛的方式。

 

赞(0)
未经允许不得转载:171主机测评 » C++学习笔记系列2-22
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址