泛型概述
在Java中存入容器中的对象再取出时需要转换类型,因为对象加入容器会被转换成Object类型,而取出时要转换成实际类型。但向 下类型转换都是存在潜在危险的,因此应该尽量避免它们。
Java的泛型:
所谓泛型就是在定义(类、方法、形参、成员变量等等)的时候,指 定它们为通用类型,也就是数据类型可以是任意类型。
泛型为提高大型程序的类型安全和维护带来了很大的潜力。...
分类:
编程语言 时间:
2014-05-24 20:42:35
阅读次数:
319
今天被问到一个C++的函数重载问题,一下子没反应过来,这种基础的问题竟然忘记了,以下记录一下这些忘记的内容。 函数重载
函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。
注意函数重载中的“...
分类:
编程语言 时间:
2014-05-23 22:51:47
阅读次数:
378
如果要交换a、b之间的值,一般的做法是:tmp=a;a=b;b=tmp;这种方法不得不使用一个临时变量。从网上学来一个方法,可以不用使用临时变量:a^=b^=a^=b;这样计算之后,就可以交换a、b值证明:首先:^
是 位运算 的一种: 异或 运算1^1=0;0^0=0;1^0=1;0^1=1;将a...
分类:
其他好文 时间:
2014-05-23 22:07:50
阅读次数:
285
模板与泛型编程--实例化[续]二、函数模板的显式实参 在某些情况下,不可能推断模板实参的类型。当函数的返回类型必须与形参表中所用的所有类型都不同时,最常出现这一问题。在这种情况下,有必要覆盖模板实参推断机制,并显式指定为模板形参所用的类型或值。1、指定显式模板实参 如果函数形参类型不统一,该如何指定sum的返回类型?template
??? sum(T, U);
此时使用任一形参调用都一定...
分类:
编程语言 时间:
2014-05-22 13:05:59
阅读次数:
322
模板与泛型编程--模板定义[续]四、模板类型形参 类型形参由关键字class或 typename后接说明符构成。在模板形参表中,这两个关键字具有相同的含义,都指出后面所接的名字表示一个类型。 模板类型形参可作为类型说明符在模板中的任何地方,与内置类型说明符或类类型说明符的使用方式完全相同。具体而言,它可以用于指定返回类型或函数形参类型,以及在函数体中用于变量声明或强制类型转换。 template ...
分类:
编程语言 时间:
2014-05-22 06:37:23
阅读次数:
407
模板与泛型编程--类模板成员[续1]二、非类型形参的模板实参template
class Screen
{
public:
Screen():screen(hi * wid,'#'),
cursor(hi * wid),height(hi),width(wid) {}
//..
private:
std::string screen;
std:...
分类:
编程语言 时间:
2014-05-21 14:00:04
阅读次数:
332
编程题:数组名作为函数参数。要求分析:形参和实参都是数组名,传递整个数组,形参数组与实参数组必须等同,是存放在同一空间的同一个数组。形参数组修改时,实参数组也同时被修改,否则无法运行。#include<stdio.h>voidchange(intx[2]){intt;printf("x[0]=%d,x[1]=%d\n..
分类:
其他好文 时间:
2014-05-20 18:52:03
阅读次数:
270
编程题:指针变量,实参与形参的引用。已知一个一维数组,求其中前n个数的和。n由键盘输入。#include<stdio.h>intsum(int*q,intn){inti,s=0;for(i=0;i<n;i++,q++)s+=*q;returns;}voidmain(){intnum,a[10]={1,2,3,4,5,6,7,8,9,10};int*p=a;scanf("%d",&num);printf..
分类:
其他好文 时间:
2014-05-20 18:39:59
阅读次数:
240
说明MapReduce是一种分布式计算模型,解决海量数据的计算问题,主要有Map和Reduce组成用户使用时需要实现map()和reduce()两个函数,两个函数的形参都是key/value键值对若以eclipse为开发环境,运行时出现内存不足的情况,需要修改虚拟机的参数
(例如把Default V...
分类:
其他好文 时间:
2014-05-19 11:56:18
阅读次数:
352