文档章节

c++实现数组压缩存储,初学者

cyleft
 cyleft
发布于 2017/05/16 11:56
字数 242
阅读 12
收藏 0
#include <iostream>
#include <stdio.h>

using namespace std;

static int length = 0;

typedef char ElemType;

typedef struct Compress{
    ElemType *data;
}*com,arr;

void init_matrix(com &com){
    com = new arr[length];
    for(int i=0;i<length;i++){
        com[i].data = new ElemType[10];
    }
}

void init_matrix(arr &arr,int num){
    arr.data = new ElemType[num];
}

void compass(com& cha,arr& yasuo,int num){
    length = num;
    int k=0;
    int compass_length = (1+length)*length/2;
    init_matrix(cha);
    init_matrix(yasuo,compass_length);
    for(int i=0;i<length;i++){
        for(int j=0;j<i+1;j++){
            //cin>>cha[i][j];
            cha[i].data[j] = i*j+'0';
            cha[j].data[i] = cha[i].data[j];
            yasuo.data[k] = cha[i].data[j];
            k++;
        }
    }
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            cout<<cha[i].data[j]<<" ";
        }
        printf("\n");
    }
    printf("\n");
    int a=0;
    int sum;

}

void display_all(arr yasuo){

    for(int k=0;k<55;k++){
        //cout<<yasuo.data[k]<<" ";
        cout<<"a["<<k<<"] = "<<yasuo.data[k]<<endl;
    }
   //cout<<"a["<<k<<"] = "<<yasuo.data[k]<<endl;
}

void display_appoint(arr yasuo,int x,int y){


    if(y>x){
        int temp;
        temp = x;
        x = y;
        y = temp;
    }
    cout<<x<<y<<endl;
    cout<<"a["<<x<<"]["<<y<<"]"<<endl;
    cout<<"a["<<((x)*(x-1)/2)+y<<"] = "<<yasuo.data[((x)*(x-1)/2)+y]<<endl;
}

int main()
{
    com c;
    arr a;
    compass(c,a,10);
    display_all(a);
    display_appoint(a,10,8);
    return 0;
}


 

© 著作权归作者所有

共有 人打赏支持
cyleft
粉丝 1
博文 31
码字总数 10068
作品 0
九江
程序员
私信 提问
C语言/C++编程学习—神秘小游戏制作源代码

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/25
0
0
C++雾中风景番外篇:理解C++的复杂声明与声明解析

在学习C系列语言的过程之中,理解C/C++的复杂声明一直是初学者很困扰的问题。笔者初学之时也深受困扰,对很多规则死记硬背。后续在阅读《C专家编程》之后,尝试在编译器的角度来理解C/C++的声...

LeeHappen
09/05
0
0
Effective STL - 容器

STL(standard template library)提供了一组表示容器,迭代器,函数对象和算法的模板。容器是一个与数组类似的单元,可以存若干个值。 STL容器是同质的,即存储的值的类型相同;算法是完成特...

積木leayn
2013/10/07
0
0
Perl 5.6 的新特性在哪些方面优于 C/C++/Java?

Cultured Perl: 吸引 C 和 Java 程序员目光的Perl 5.6 Perl 5.6 的新特性在哪些方面优于 C/C++/Java? 转自:http://www-128.ibm.com/developerworks/cn/linux/sdk/perl/culture-2/index.htm......

范堡
2009/01/06
733
0
Cocos2d-x中关于lua的坑

上周在项目开发中遇到一个奇怪的问题,某个c++模块解压完的字节流数据传递给lua后,lua在做基于字节流的反序列化时始终出错,刚开始以为是不是c++模块读取出来的字节流有问题,但是debug发现,c+...

pigsoldier
2014/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
7
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
2
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
4
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部