首页 > 编程语言 >C++ 数组元素操作

C++ 数组元素操作

时间:2024-05-09 17:23:23浏览次数:19  
标签:pArr2 int 元素 C++ pInsert ++ 数组 offset

数组元素的移除

  • 核心思路:创建一个新的内存空间存储移除后的数组,再将原数组delete释放,再将指针指向新数组。
cout << "----------------------------- 数组元素的移除 -------------------------" << endl;
//cout << deleteArrByIndex(0, arr11) << endl;

// 示例数组
int * pArr = new int[5] {1,3,5,7,9};
int * pNewArr = new int[4];
int deleteIndex = 2;    // 移除下标为2的元素
int len = 5;
for (int i = 0; i < len; ++i) {
    if(i == 2) {
        continue;
    }
    if(i <= 2) {
        pNewArr[i] = pArr[i];
    }else {
        pNewArr[i - 1] = pArr[i];
    }
}
delete[] pArr;  // 回收老数组的空间

pArr = pNewArr; // 将老数组的指针指向新数组的内存空间
// 打印删除后的数组
for (int i = 0; i < 4; ++i) {
    cout << pArr[i] << endl;
}

数组元素的插入

        int * pArr2 = new int[]{1,2,3,4,5};  // 1  , 3下标插入 0
        int * pInsert = new int[7];
        int offset =  0;
        for (int i = 0; i < 5; ++i) {
            if(i == 1 || i == 3) {
                pInsert[i + offset] = 0;
                offset ++;
            }
            
            pInsert[i + offset] = pArr2[i];
        }
        delete[] pArr2;
        pArr2 = pInsert;
        for (int i = 0; i < 7; ++i) {
            cout << "pArr2[" << i << "] = " << pArr2[i] << endl;
        }

 

标签:pArr2,int,元素,C++,pInsert,++,数组,offset
From: https://www.cnblogs.com/1873cy/p/18181275

相关文章

  • C++面试考点
    c++基础1、malloc/free和new/delete的异同点?2、cpp程序运行时内存模型?答:代码区,只读的区域,是代码被翻译成二进制机器指令存储的地方;数据区,分为初始化数据区和未初始化数据区,用来存储全局变量和static变量的地方;堆区,动态内存分配的地方,new和malloc分配就是从此处分配;栈区,函数调用......
  • 【每日一题】寻找两个正序数组的中位数
    4.寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组 nums1和 nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例......
  • GCC编译C++步骤
    在使用GCC编译器编译多个源文件时,你需要将所有需要编译的源文件列出,并在命令行中将它们一起传递给GCC。GCC会将这些源文件编译成目标文件(.o文件),然后链接成最终的可执行文件或动态库。下面是一个示例命令行:bashCopycodeg++-cfile1.cppfile2.cppfile3.cpp在这个......
  • TLP元素与PCIE数据流
    不同于并行总线,PCIe这样的串行总线不使用总线上的控制信号来表示某时刻链路上正在发生什么。相反地,PCIe链路上的发送方发出的比特流必须要有一个预期的大小,还要有一个可供接收方辨认的格式,这样接收方才能理解比特流的内容。此外,PCIe在传输数据包时并不使用任何直接握手机制(imme......
  • 33. 搜索旋转排序数组
    整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开始计数)。例如,[0,1,2,4,5,6,7]在下标3处经......
  • 153. 寻找旋转排序数组中的最小值
    已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4,5,6,7,0,1,2]若旋转7次,则可以得到[0,1,2,4,5,6,7]注意,数组[a[0],a[1],a[2],...,a[n-1]]旋转一次的结果......
  • C语言调用C++的共享库SO
    C语言调用C++的共享库SO今天在项目中,遇到了一个问题,对方提供给我们一个.h的声明文件(使用的是cpp语言),和一个动态库so。但是我们项目中用的是C语言,我们如何来调用so库中的方法呢?我们都知道,C++在设计时,兼容C语言,可以直接调用C语言库中的接口,但是C语言调用C++的接口就会比较困难,比如C......
  • 多数元素
    publicintMajorityElement(int[]nums){Dictionary<int,int>dic=newDictionary<int,int>();foreach(intnuminnums){if(!dic.ContainsKey(num)){dic.A......
  • 代码随想录算法训练营第第一天 | 704. 二分查找 、27. 移除元素
    704、二分查找题目链接:https://leetcode.cn/problems/binary-search/文章讲解:https://programmercarl.com/0704.二分查找.html视频讲解:https://www.bilibili.com/video/BV1fA4y1o715`varsearch=function(nums,target){letleft=0;letright=nums.length;letmi......
  • 34. 在排序数组中查找元素的第一个和最后一个位置
    给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示例1:输入:nums=[5,7,7,8,8,10],target=8......