namedajipai 2016-07-18 07:06 采纳率: 92.9%
浏览 856
已采纳

删除孤立的数据,只保留连续的数据

删除数组中孤立的数据,只保留连续的数据怎么做?比如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
    关注

    http://zhidao.baidu.com/link?url=lNHw9zw0qNoXD-41mQNsXZ4-mIzs3GFXvh9kwrfg5SOsK7THEOqNGlY2yrhijBOr4stLRjbDrL5G-FS_inD658cLi2NYP44QvPGdWMqX9Iu

    #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;
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥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 火焰左右视图、视差(基于双目相机)