删除数组中孤立的数据,只保留连续的数据怎么做?比如1 2 3 7 9 10 11 17 19 20 21,得到1 2 3 9 10 11 19 20 21。
4条回答 默认 最新
- threenewbee 2016-08-02 04:17关注
#include
#include
using namespace std;struct Array
{//这里只是取了begin和end,反正是连续的,节约内存,用的时候加数字就是了,还可以写个函数在里面加,像数组一样,甚至重载操作符,当然也可以new来分配大小,感觉没必要了
int begin;
int end;
};void main()
{
int a[]={1,2,3,4,6,7,8,10,11,12,15,16,33};
vector aVector ;int size =sizeof(a)/sizeof(int); Array aa={0}; for (int i = 0; i < size; ++i) { aa.begin = a[i]; while(i < size-1 && a[i+1] == a[i] +1) i++; aa.end = a[i]; aVector.push_back(aa); } //输出,这里也可以for(int i=0;i<aVector.size();i++)然后.at取出来,效率问题,还可以用foreach for (vector<Array>::iterator iter = aVector.begin(); iter != aVector.end(); iter++) { for (int i= iter->begin; i <= iter->end; ++i) { cout<<i<<" "; } cout<<endl; }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
- ¥500 火焰左右视图、视差(基于双目相机)