精华内容
下载资源
问答
  • 扩展验证证书即EV SSL 证书,是目前SSL证书中审核...EV证书的签发标准是什么? 1:CA自动化验证申请机构的域名所有权 2:验证完域名所有权,CA机构根据公示的工商信息或者机构对外公示的电话进行电话核实 3:完成以

    扩展验证证书即EV SSL 证书,是目前SSL证书中审核最严格同时也是安全级别最高的SSL证书,因此比较适用于适用于银行金融类、电子商务网站(网上购物)。EV扩展验证SSL证书中不包含通配符,也是说在EV SSL证书中没有泛域名型证书,所以子域名比较多的大型机构一般选择OV通配符SSL证书,或者主域名用EV SSL,子域名用OV SSL.

    EV证书的签发标准是什么?

    1:CA自动化验证申请机构的域名所有权

    2:验证完域名所有权,CA机构根据公示的工商信息或者机构对外公示的电话进行电话核实

    3:完成以上两步后1个小时内即可签发EV SSL证书

    EV ssl证书有两个版本:一个是普通版本的,一个是增强版本的证书,相信从命名上,我们能感觉出增强版的ev ssl证书应该是比较贵的,那么除了价格上的区别之外,ev ssl证书增强版与普通版本有哪些区别?

    ev ssl证书增强版与普通版本的区别其实主要在两个方面,普通版本ev ssl证书采用了强制128-256位加密,而增强版ev ssl证书则采用的自适应40-256位加密,自适应加密和强制性加密的区别是:自适应加密:证书根据用户使用的浏览器支持的加密位数进行加密。加密强度分为:40位、56位、128位、256位等,目前常用浏览器的版本都支持128位以上加密,但许多用户没有升级浏览器版本的习惯,仍在使用较低版本的浏览器,因此可能仅支持40位的加密,加密位数过低可能存在被破解的风险。强制加密:不管用户使用的浏览器是否支持128位的加密,证书都会采用强制128位以上加密的算法进行加密,避免因加密位数过低而造成证书被破解、数据泄露等严重风险。

    我们这里的加密位数指的是SSL会话时生成加密密钥的长度,密钥越长越不容易破解,而以目前的科技水平来说如果用户采用强制性128-256位加密,即便是的128位加密,采取强行攻击的方法破解密码也需要1019年,通俗点说网站部署了ev ssl证书增强版,会使网站信息加密强度更强,信息更不容易被截获破解。

    另一方面的区别安全赔付政策,根据国际标准WebTrust的要求,全球信任的根证书颁发机构(CA)必须购买商业保险,而ev ssl证书增强版的安全保险赔付金额可达500万美元,而ev ssl证书的安全保险赔付金额则是五十万美元,二者差了十倍。

    以上信息作者SSL盾超便宜SSL数字证书

    展开全文
  • 2017年最新高中俄语教育课程标准,课程标准规定了课标学习内容教学,方便老师对教学进行规划,或者学生建立自己的知识体系体系。
  • 2017年最新高中地理教育课程标准,课程标准规定了课标学习内容教学,方便老师对教学进行规划,或者学生建立自己的知识体系体系。
  • 2017年最新高中德语教育课程标准,课程标准规定了课标学习内容教学,方便老师对教学进行规划,或者学生建立自己的知识体系体系。
  • 普通高中历史新课程标准征求意见稿一学科核心素养学科核心素养是学科育人价值的概括性专业化表述是知识能力过程方法情感态度和价值观的整合提炼是学生在学完本课程之后所形成的在解决真实情境中的问题时所表现
  • 建设发展,催生出现实空间虚拟空间并存的信息社会,并逐步 构建出智慧社会。信息技术的快速发展,重塑了人们沟通交流的时 间观念和空间观念,不断改变人们的思维交往模式,深刻影响人 们的生活、工作学习,...
  • AppCan的HTML5移动游戏加速引擎制作游戏,仅需按照标准canvas编写,基本不涉及调用私有接口,性能可达到HTML5浏览器的6-10倍。 来源:HTML5中国 转载于:...

      AppCan的HTML5移动游戏加速引擎制作游戏,仅需按照标准canvas编写,基本不涉及调用私有接口,性能可达到HTML5浏览器的6-10倍。

    来源:HTML5中国

    转载于:https://www.cnblogs.com/axin00/archive/2012/09/25/2701045.html

    展开全文
  • sigaction 函数的功能是检查或修改指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum...

    在实现mysleep函数之前,先介绍一下一会儿程序中要用到的函数。


    信号捕捉函数:sigaction函数
    sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。
    他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数oldact。调用成功返回0,出错返回-1.

    #include <signal.h>
    int sigaction (int signo,const struct sigaction *restrict act,
                  struct sigaction *restrict oact);

    结构sigaction 定义如下:
    struct sigaction {
    void (*sa_handler)(int);
    sigset_t sa_mask;
    int sa_flag;
    void (sa_sigaction)(int,siginfo_t ,void *);
    };

    sa_handler字段:包含一个信号捕捉函数的地址。当SIG_IGN传给sigaction表示忽略信号;赋值为常数SIG_DFL表示执行系统默认动作;赋值为函数指针表示用自定义函数捕捉信号,或者说由内核注册了一个信号处理函数,该函数的返回值为void,可以带int参数,通过参数可以得知当前信号的编号这样就可以用同一个函数处理多个信号。显然,这也是一个回调函数,不是被main函数调用,而是被系统调用。

    sa_mask字段:当某个信号的处理函数被调用时,内核自动将当前信号加入进程的信号屏蔽字,当信号处理函数返回时自动恢复原来的信号屏蔽字,这样就保证了在处理某个信号时,如果这种信号再次产生,那么它会被阻塞到当前处理结束为止。如果在调用信号处理函数时,除了当前信号被自动屏蔽之外,还希望自动屏蔽另外一些信号,则用sa_mask字段说明这些需要额外屏蔽的信号,当信号处理函数返回时自动恢复原来的信号屏蔽字。

    sa_flag字段:是一个选项,因为下面的程序我们不需要这个字段,所以默认给0 SA_INTERRUPT 由此信号中断的系统调用不会自动重启
    SA_RESTART 由此信号中断的系统调用会自动重启 SA_SIGINFO
    提供附加信息,一个指向siginfo结构的指针以及一个指向进程上下文标识符的指针
    最后一个参数是一个替代的信号处理程序,当设置SA_SIGINFO时才会用他。


    计数器:alarm函数

    include <unistd.h>
    unsigned int alarm(unsigned int seconds);/*指定秒数*/

    alarm函数是设置一个计时器, 在计时器超时的时候, 产生SIGALRM信号. alarm也称为闹钟函数,一个进程只能有一个闹钟时间。

    如果alarm函数计时完毕发出SIGALRM信号后,系统不忽略或捕捉此信号,
    那么就执行该信号的默认处理操作—-终止调用该alarm函数的进程。
    它的主要功能是设置信号传送闹钟。其主要功能用来设置信号SIGALRM在经过seconds指定的秒数后传送给目前的进程。

    返回值:
    alarm函数的作用和闹钟的作用一样,设置信号SIGALRM在经过seconds指定的秒数后传送给目前的进程。
    返回值为0,说明经过seconds秒后闹钟准时响了,就是说操作系统在senconds秒之后准时的给当前进程发送了SIGALRM信号。
    返回值大于0,则说明由于某些原因闹钟提前响了,即操作系统由于某些原因在没有到senconds秒的时候给当前进程发送了SIGALRM信号,而返回值就是之前闹钟剩余的秒数(就是离senconds秒还差多少秒)。就好比,我要休息一会儿,设闹钟30分钟后响,但是由于我刚睡了20分钟就被吵醒了,还想再多睡一会,于是就重新设置闹钟为15分钟后响,那么之前闹钟剩余的时间就是10分钟。
    如果seconds值为0,表示取消以前设定的闹钟,函数的返回值仍是以前设定的闹钟时间还余下的秒数。


    pause函数

    pause函数使调用进程挂起直到有信号递达。
    如果信号的处理动作是终止进程,则进程终止,pause函数没有机会返回;
    如果信号的处理动作是忽略,则进程继续处于挂起状态,pause不返回;
    如果信号的处理动作是捕捉,则调用了信号处理函数之后pause返回-1,errno设置为EINTR(错误码EINTR表示被信号中断),
    所以pause只有出错的返回值。

    普通版本的Sleep函数的实现

    #include<stdio.h>
    #include<signal.h>
    
    void myhandler(int sig)
    {}
    
    int mysleep(int timeout)
    {
        struct sigaction act,oact;
        act.sa_handler = myhandler;
        sigemptyset(&act.sa_mask);
        act.sa_flags = 0;
        sigaction(SIGALRM,&act,&oact);
    
        alarm(timeout);
        pause();
        int ret = alarm(0);
        sigaction(SIGALRM,&oact,NULL);
        return ret;   
    }
    
    int main()
    {
        while(1)
        {
            printf("mysleep start...\n");
            mysleep(3);
            printf("mysleep success\n");
        }
        return 0;   
    }
    

    程序执行过程:
    1)main函数调用mysleep函数。mysleep函数调用sigaction注册了SIGALRM信号的处理函数myhandler。这里的myhandler函数并没有做什么工作,但不能少,因为SIGALRM信号的默认处理是终止进程。
    2)调用alarm(timeout)设定闹钟。
    3)调用pause等待,内核切换到别的进程运行。
    4)timeout秒之后,闹钟超时,内核发SIGALRM给这个进程。
    5)从内核态返回这个进程的用户态之前处理未决信号,发现有SIGALRM信号,其处理函数是myhandler。
    6)于是切换到用户态执行myhandler函数,进入myhandler函数时SIGALRM信号被自动屏蔽, 从myhandler函数返回时SIGALRM信号自动解除屏蔽。然后自动执行系统调用sigreturn再次进入内核,再返回用户态继续执行进程的主控制流程,即为main函数调用mysleep函数处。
    7) pause函数返回-1,然后调用alarm(0)取消闹钟,调用sigaction恢复SIGALRM信号以前的处理动作。

    运行结果:
    这里写图片描述

    正常情况下,我们都会这么写,而且从结果看与我们的预期相符,But~~~~~~~~这里面有个很大的问题

    现在重新审视mysleep函数,设想这样的时序:

    1. 注册SIGALRM信号的处理函数。
    2. 调用alarm(timeout)设定闹钟。
    3. 内核调度优先级更高的进程取代当前进程执行,并且优先级更高的进程有很多个,每个都要执行很长时间
    4. timeout秒钟之后闹钟超时了,内核发送SIGALRM信号给这个进程,该信号处于未决状态。
    5. 优先级更高的进程执行完了,内核要调度回这个进程执行。SIGALRM信号递达,执行处理函数myhandler之后再次进入内核。
    6. 返回这个进程的主控制流程,alarm(timeout)返回,调用pause()挂起等待。
    7. 可是SIGALRM信号已经处理完了,还等待什么呢?
    

    出现这个问题的根本原因是系统运行的时序(Timing)并不像我们写程序时所设想的那样。虽然alarm(timeout)紧接着的下一行就是pause(),但是无法保证pause()一定会在调用alarm(timeout)之后的timeout秒之内被调用。由于异步事件在任何时候都有可能发生(这里的异步事件指出现更高优先级的进程),如果我们写程序时考虑不周密,就可能由于时序问题而导致错误,这叫做竞态条件(Race Condition)。
    如何解决上述问题呢?读者可能会想到,在调用pause之前屏蔽SIGALRM信号使它不能提前递达就可以了。看看以下方法可行吗?

    1. 屏蔽SIGALRM信号;
    2. alarm(timeout);
    3. 解除对SIGALRM信号的屏蔽;
    4. pause();
    

    从解除信号屏蔽到调用pause之间存在间隙,SIGALRM仍有可能在这个间隙递达。要消除这个间隙,我们把解除屏蔽移到pause后面可以吗?

    1. 屏蔽SIGALRM信号;
    2. alarm(timeout);
    3. pause();
    4. 解除对SIGALRM信号的屏蔽;
    

    这样更不行了,还没有解除屏蔽就调用pause,pause根本不可能等到SIGALRM信号。要是“解除信号屏蔽”和“挂起等待信号”这两步能合并成一个原子操作就好了,这正是sigsuspend函数的功能。sigsuspend包含了pause的挂起等待功能,同时解决了竞态条件的问题,在对时序要求严格的场合下都应该调用sigsuspend而不是pause。

    sigsuspend函数

    include <signal.h>
    
    int sigsuspend(const sigset_t *sigmask);

    和pause一样,sigsuspend没有成功返回值,只有执行了一个信号处理函数之后sigsuspend才返回,返回值为-1,errno设置为EINTR。
    调用sigsuspend时,进程的信号屏蔽字由sigmask参数指定,可以通过指定sigmask来临时解除对某个信号的屏蔽,然后挂起等待,当sigsuspend返回时,进程的信号屏蔽字恢复为原来的值,如果原来对该信号是屏蔽的,从sigsuspend返回后仍然是屏蔽的。

    以下用sigsuspend重新实现mysleep函数:

    #include <unistd.h>
    #include <signal.h>
    #include <stdio.h>
    
    void myhandler(int sig)
    {}
    
    int mysleep(int timeout)
    {
    
        struct sigaction act, oact; 
        sigset_t newmask, oldmask, suspmask;
    
    
        act.sa_handler = myhandler;
        sigemptyset(&act.sa_mask);
        act.sa_flags = 0;
        sigaction(SIGALRM, &act, &oact);
    
    
        sigemptyset(&newmask);
        sigaddset(&newmask, SIGALRM);//添加SIGALRM信号
        sigprocmask(SIG_BLOCK, &newmask, &oldmask); //添加SIGALRM信号屏蔽字
    
        alarm(timeout);
    
        suspmask = oldmask;
        sigdelset(&suspmask, SIGALRM);//删除SIGALRM信号
        sigsuspend(&suspmask); //解除对SIGALRM信号的屏蔽同时挂起等待
    
        int ret = alarm(0);
        sigaction(SIGALRM, &oact, NULL); 
        sigprocmask(SIG_SETMASK, &oldmask, NULL); //对信号屏蔽字复位
        return  ret;
    }
    
    int main(void)
    {
        while(1)
        {
            printf("mysleep start\n");
            mysleep(3);
            printf("mysleep success\n");
        }
        return 0;
    }
    

    如果在调用mysleep函数时SIGALRM信号没有屏蔽:

    1. 调用sigprocmask(SIG_BLOCK, &newmask, &oldmask);时屏蔽SIGALRM。
    2. 调用sigsuspend(&suspmask);时解除对SIGALRM的屏蔽,然后挂起等待待。
    3. SIGALRM递达后suspend返回,自动恢复原来的屏蔽字,也就是再次屏蔽SIGALRM。
    4. 调用sigprocmask(SIG_SETMASK, &oldmask, NULL);时再次解除对SIGALRM的屏蔽。
    
    展开全文
  • JIEQI CMS 1.60标准版 正式发布 一、JIEQI CMS 1.60标准版是JIEQI CMS系列产品免费版的组合包,包括的免费版的所有模块: 小说连载(article)、在线漫画(cartoon)、分类信息(info)、个人空间(space)、圈子交友(group...
  • 1、vector动态数组 在不知道数组长度和邻接链表时常用到,基本用法如下: ...访问第i元素 直接使用下标(跟普通数组一样) 6.swap() 将一个动态数组另一个动态数组交换;例如:b.swap(x)[将数组x数组b交换] ...

    1、vector动态数组

    C++中的vector的实现在一个<vector>头文件中。

    使用vector可以构造一个动态数组。C++中直接构造一个vector的语句为:vector<T>  v。这样我们就定义了一个名为v的存储T类型数据的动态数组。其中T使我们要存储的数据类型,可以是intdoublefloat、或者其他自定义的类型等等。初始的时候v是空的。

    在不知道数组长度和邻接链表时常用到,基本用法如下:

    •   1. push_back()   在数组最后面插入一个元素
    •   2.size()              返回数组的大小
    •   3.clear()             清空数组
    •   4.pop_back()     弹出末尾的元素
    •   5.访问第i元素    直接使用下标(跟普通数组一样)
    •   6.swap()            将一个动态数组与另一个动态数组交换;例如:b.swap(x)[将数组x与数组b交换
    •   7.back()             返回动态数组中最后一个元素
    •   8. q = p               将p动态数组赋值给q

    例题:

     

    2、queue 队列

     定义:队列本身就是一种先进先出的限制性数据结构
     操作

    •  1.front() 访问队首元素
    •  2.back()  访问队尾元素
    •  3.push()  在队尾加入一个元素
    •  4.pop()   抛出队首元素
    •  5.empty() 判断队列是否为空
    •  6.size()  返回队列中元素个数

     

    3、set集合
      集合:是一个内部自动有序且不含重复元素的容器

    •   1.insert(x)   将x插入到set容器中,并自动递增排序和去重
    •   2.find(x)     返回x在set中所在的位置
    •   3.erase()     删除一个元素或删除一个区间的元素(常配合find()来删除一个区间的元素)
    •   4.size()      返回set的大小
    •   5.count(x)    判断x是否在set中
    •   6.clear()     清空set
    •   注意:遍历set需要用到迭代器

    参考代码:

    #include<iostream>
    #include<algorithm>
    #include<set>
    using namespace std;
    
    int main()
    {
    	set<int> a;
    	set<int> b;
    
    	int n, m;
    	cin >> n >> m;
    	for (int i = 0; i < n; i++)
    	{
    		int x;
    		cin >> x;
    		a.insert(x);
    	}
    
    	for (int i = 0; i < m;i++)
    	{
    		int x;
    		cin >> x;
    		b.insert(x);
    	}
    
    	//遍历b数组将b数组的各个元素依次放入a中
    	for (set<int>::iterator it = b.begin(); it != b.end(); it++)
    	{
    		a.insert(*it);
    	}
    
    	int num = a.size();
    	//遍历a数组中的元素输出
    	for (set<int>::iterator it = a.begin(); it != a.end(); it++)
    	{
    		cout << *it;
    		num--;
    		if (num != 0) cout << " ";
    	}
    	//system("pause");
    	return 0;
    }


    4、string 基本用法

    string str;      //定义一个字符数组
    1.可以使用下标访问str中的元素
    2.可以使用迭代器访问set中的元素
    例如:

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
    	string str = "abcdef";
    
    	for (string::iterator it = str.begin(); it != str.end(); it++)
    	{
    		cout << *it;
    	}
    	system("pause");
    	return 0;
    }

    string常用函数

    1.两个string的字符串可以直接用‘+’连接起来
    例如: string str1,str2;  str1 += str2(将str2拼接在str1的后面)
    2.string类型的字符串可以直接使用 ==  !=  >  <  <=  >= 比较大小,比较的规则是字典序。
    3.length()/size()  返回字符串的大小(长度)
    4.find(str1)       返回str1在str中第一次出现的位置
    5.replace(str1)    用str1替换str 

     

    编程小技巧

    1.strncpy函数的用法
    strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, const char *src, int n),
    把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。
    区别:
    strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。
    strncpy能够选择一段字符输出,strcpy则不能。

    2.strcmp函数的用法
    字符串比较函数,一般形式为strcmp(字符串1,字符串2)。
    比较规则:
    对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。
    如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”,还要特别注意:小写字母比大写字母“大”。
    返回值:
    (1)字符串1==字符串2,返回0
    (2)字符串1>字符串2,返回一个正整数
    (3)字符串1<字符串2,返回一个负整数。

    展开全文
  • JIEQI CMS 1.60标准版 正式发布 一、JIEQI CMS 1.60标准版是JIEQI CMS系列产品免费版的组合包,包括的免费版的所有模块: 小说连载(article)、在线漫画(cartoon)、分类信息(info)、个人空间(space)、圈子交友(group...
  • JIEQI CMS 1.60标准版 正式发布 一、JIEQI CMS 1.60标准版是JIEQI CMS系列产品免费版的组合包,包括的免费版的所有模块: 小说连载(article)、在线漫画(cartoon)、分类信息(info)、个人空间(space)、圈子交友(group...
  • JIEQI CMS 1.60标准版 正式发布 一、JIEQI CMS 1.60标准版是JIEQI CMS系列产品免费版的组合包,包括的免费版的所有模块: 小说连载(article)、在线漫画(cartoon)、分类信息(info)、个人空间(space)、圈子交友(group...
  • JIEQI CMS 1.60标准版 正式发布 一、JIEQI CMS 1.60标准版是JIEQI CMS系列产品免费版的组合包,包括的免费版的所有模块: 小说连载(article)、在线漫画(cartoon)、分类信息(info)、个人空间(space)、圈子交友(group...
  • 优点:可以动态的随着元素的增加和减少改变数组的长度,使用起来与普通数组区别不大 操作方法: 头文件 #include 定义与初始化操作 vector<int>v;//创建一个数组v,类型为int vector<int>v...
  • 美萍进销存商业管理系统V8.1标准版(破解版),该版本为绿色版本。 美萍商业进销存管理系统是一款专业的销售管理软件,其中包含商品销售管理系统 ,库存管理系统(仓库管理系统),财务和报表系统等子模块。软件...
  • 第2章The C Programming Language, Second Edition类型、运算符表达式变量和常量是程序处理的两种基本数据对象。声明语句说明变量的名字及类型,也可以指定变量的...ANSI标准对语言的基本类型表达式做了许多小的...
  • 千博企业网站管理系统标准版v2012 Build0208(80套企业网站界面样式模板) 2012.2.8更新 修正后台模板管理模块错误 系统特色/亮点: 1、全DIV+CSS架构,区别于普通企业网站系统。 附【普通表格架构企业网站...
  • 软件界面设计简洁,美观,人性化的软件流程,使普通用户不需培训也 能很快掌握软件操作使用方法。美萍汽车维修管理软件广泛适用于汽车维修企业,配件销售企业, 汽车4S店等场合,是您企业进行信息化管理的强大工具。...
  • 标准版和试用版客户不要选择,因为没有提供日志查询功能。 11、有时候使用聚生网管和网络打印机有冲突,这时候只要把网络打印机的IP地址改为自动分配,重启就可以了。 12、一般的监控方式都是选择“主动引导模式”...
  • 随着电子商务行业的发展,广大企业个人的电子商务意识也越来越强,上网做网上生意的要求日趋强烈,MvMmall多用户商城系统标准版V_2.0.0行业内首创对商铺进行分类,弥补了大多数商城系统对特殊行业商品(如个性定制...
  • 软件界面设计简洁, 美观,其人性化的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。强大报表集成查询功能是本软件的最大特色,所有功能在用户需要的使用地方自然体现,不用打开多个窗口...
  • 标准幼圆体简体字体是一款字形方正,笔画圆润的常规中文字体,给人一种柔和的感觉,纤细的外形,非常的清秀,很多书籍中都是采用这类型字体,能够适用于艺术设计、包装印刷、签名设计、图形设计等领域,欢迎有喜欢或...
  • 软件界面设计简洁, 美观,其人性化的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。强大报表集成查询功能是本软件的最大特色,所有功能在用户需要的使用地方自然体现,不用打开多个窗口...
  • E8财务管理软件标准版符合我国最新会计制度,经过多年的发展和完善,现已成为业内最好的财务软件之一, 系统采用了“程序通用、用户专用”的设计思想,能个性化适应各行各业的需求,涉及建筑工业、工业、商业及机关...
  • 软件界面设计简洁,美观,其人性化的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。强大报表集成查询功能是本软件的最大特色,所有功能在用户需要的使用地方自然体现,不用打开多个窗口...
  • C++ 模版泛型编程

    2015-02-14 17:25:09
    一、两种模版 类模板 template template 函数模版 二、泛型编程 主要用于容器、迭代器、算法 → C++ STL 标准模版库 三、示例 1、普通队列 2、C++中的泛型队列
  • 我主要关注:高中信息技术、通用技术方面的课标。下面就把我的体会总结一下,便于后续教研。 高中信息技术 ...技术生活系列 技术工程系列 技术职业系列 技术创造系列 ...
  • 软件界面设计简洁, 美观,其人性化的软件流程,使普通用户不需培训也能很快掌握软件操作使用方法,上手极易。强大报表集成查询功能是本软件的最大特色,所有功能在用户需要的使用地方自然体现,不用打开多个窗口...
  • 医网联影像工作站标准版4.0(ProDicom Workstation 4.0)是医网联影像工作站3.0(ProDicom Workstation 3.0)版本的升级版,其中最大的改变是数据库的改变,医网联影像工作站标准版的数据库采用了常用的SQL2000...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 813
精华内容 325
关键字:

标准版与普通版