Welcome 微信登录

首页 / 软件开发 / C++

分布式基础学习【二】 —— 分布式计算系统(Map/Reduce)

分布式基础学习【二】 —— 分布式计算系统(Map/Reduce)

分布式基础学习【二】 —— 分布式计算系统(Map/Reduce)2011-04-14 博客园 duguguiyu二. 分布式计算(Map/Reduce)分布式式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google Map/Reduce 框架所设计的分布式框架。在Hadoop中,分布式文件系统,很大程度上,是为各种分布式计 算需求所服务的。我们说分布式文件系统就是加了分布式的文件系统,类似的定义推广到分 布式计算上,我们可以将其视为增加了分布式...
C++的可移植性和跨平台开发[1]:编译器

C++的可移植性和跨平台开发[1]:编译器

C++的可移植性和跨平台开发[1]:编译器2011-04-14编程随想在跨平台的开发过程中,很多问题都和编译器有关。因此我们先来聊聊编译器相关的问题 。★编译器的选择首先,GCC是优先要考虑支持的,因为几乎所有操作系统平台都有GCC可用。它基本上成了 一个通用的编译器了。如果你的代码在A平台的GCC能够编译通过,之后拿到B平台用类似版本 的GCC编译,一般也不会有太大问题。因此GCC是肯定要考虑支持的。其次,要考虑是否支持本地编译器。所谓本地编译器就是操作...
C++的可移植性和跨平台开发[2]:语法

C++的可移植性和跨平台开发[2]:语法

C++的可移植性和跨平台开发[2]:语法2011-04-14编程随想目前还有相当一部分开发人员在使用老式编译器干活,这些老式编译器可能对C++98支持 不够。因此,当你的代码移植到这些老式的编译器上时,可能会碰到一些稀奇古怪的问题( 包括编译出错和运行时错误)。下面这些注意事项有助于你绕过这些问题。强调一下 ,后面提到的好几个条款都是通过回避C++的新语法来保证移植性。如果你用的是新式编译器 ,那么你可以不理会这些条款。★小心for循环变量的作用域(不支持...
C++的可移植性和跨平台开发[3]:异常处理

C++的可移植性和跨平台开发[3]:异常处理

C++的可移植性和跨平台开发[3]:异常处理2011-04-14编程随想上一个帖子“语法”由于篇幅有限,没来得及聊异常,现在把和异常相关的部 分单独拿出来说一下。★小心new分配内存失败早期的老式编译器生成的代码,如果new失败会返回空指针。我当年用的Borland C++ 3.1 似乎就是这样的,现在这种编译器应该不多见了。如果你目前用的编译器还有这种行为,那 你就惨了。你可以考虑重载new操作符来抛出bad_alloc异常,便于...
C++的可移植性和跨平台开发[4]:硬件体系相关

C++的可移植性和跨平台开发[4]:硬件体系相关

C++的可移植性和跨平台开发[4]:硬件体系相关2011-04-14编程随想这次聊的话题主要是和硬件体系有关的。比如你的程序需要支持不同类型的CPU(x86、SPARC、PowerPC),或者是同种类型不同字长的CPU(比如x86和x86-64),这时候你就需要关心一下硬件体系的问题。★基本类型的大小C++中基本类型的大小(占用的字节数)会随着CPU字长的变化而变化。所以,假如你要表示一个int占用的字节数,千万不要直接写“4”(顺...
C++的可移植性和跨平台开发[5]:操作系统

C++的可移植性和跨平台开发[5]:操作系统

C++的可移植性和跨平台开发[5]:操作系统2011-04-14编程随想上一个帖子提到了"硬件体系"相关的话题,今天来说说和操作系统相关的话题 。C++跨平台开发中和OS相关的琐事挺多,所以今天会啰嗦比较长的篇幅,请列位看官见谅 :-)为了不绕口,以下把Linux和各种Unix统称为Posix系统。★文件系统(FileSystem以下简称FS)刚开始搞跨平台开发的新手,多半都会碰上和FS相关的问题。所以先来聊一下FS。归纳下 来,开发中...
类的构造函数

类的构造函数

类的构造函数2011-04-14构造函数a.构造函数名必须与类名相同,不得声明返回类型;b.可以用行参形式为成员赋初值,可以重载;c.返回一个不能传递的指向其定义对象首地址的指针;d.不带任何参数的称为缺省构造函数;e.有个特殊的初始化方式叫“初始化表达式表”(简称初始化表)。初始化表位于函数参数表之后、函数体{}之前,规则:①若有继承,派生类必须在初始化表里调用基类的构造函数;class B:public A {…}...
拷贝构造函数和运算符重载

拷贝构造函数和运算符重载

拷贝构造函数和运算符重载2011-04-14拷贝构造函数应用的场合由以下几个方面:1 函数的参数是一个对象,并且是值传递方式2 函数的返回值是一个对象,并且是值传递方式3 用一个对象初始化另外一个对象由此,当函数的参数或者返回值为一个对象时,使用的时候要小心,因为值传递的时候执行的是位拷贝,并不会调用对象的构造函数,也就是说生成的临时对象可能不是正确初始化的,这样就可能会出现一些意向不到的问题。当返回值是个对象和用一个对象初始化另外一个对象时的情况是相同的...
基于C++的稀疏矩阵乘法运算器的实现

基于C++的稀疏矩阵乘法运算器的实现

基于C++的稀疏矩阵乘法运算器的实现2011-04-14 comprg.com.cn 周敏1. 问题描述稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特 点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵乘法运 算的运算器。以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个 矩阵相乘的运算。稀疏矩阵采用十字链表表示,而运算结果的矩阵则以通常的阵列形式列出2 设计2.1 用十字...
基础入门:解密数组名本质

基础入门:解密数组名本质

基础入门:解密数组名本质2011-04-14现在到揭露数组名本质的时候了,先给出三个结论:(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!1、数组名指代一种数据结构:数组现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数...
关于几何关系的代码说明

关于几何关系的代码说明

关于几何关系的代码说明2011-04-14 csdn 张亮很多朋友需要这方面的资料,尤其是代码。我在陆续挖掘和整理的过程中,推翻了自己的 开源的设想,形成了一个库——cgal32.dll(win32版,标准C库)。一、 这是基于几个原因:1、库中个别地方代码采用了非商业开源的代码。我没有权利去 公开它们。2、只有不开源,我写的库大家才能免费使用。免除大家在道德和法律上 面临的风险。3、我做了大量工作,使自己本身免除道德和法律上的风险...
高效实现Josephus算法

高效实现Josephus算法

高效实现Josephus算法2011-04-14Josephus定义:假设N个人编号1-N,围成圈。从1号开始报数,报到M时,此人退出,然 后继续从1开始报数,直到所有人退出为止。简单的实现是使用循环单链表,设置一个计数器 count,当count == M ,删除当前节点,并将count重置。假设M = 9,N = 5;这里有两处地方可以优化:1.当M>N时,取M`= M mod N,即M` = 9 % 5 = 4;报数到9与报数到4效果一致,但少...
C++必知必会(一) 数据抽象

C++必知必会(一) 数据抽象

C++必知必会(一) 数据抽象2011-04-14“类型”是一组操作,“抽象数据类型”则是一组具有某种实现的操作。当我们在某个问题的领域中识别对象时,首先考虑的问题是“可以用这个对象来做什么”而不是“这个对象是如何实现的”。因此,如果某个问题的自然描述涉及到雇员、合同和薪水记录,那么用来解决该问题的编程语言就应该包含Employee、Contract和Payro...
C++必知必会(二) 多态

C++必知必会(二) 多态

C++必知必会(二) 多态2011-04-14多态(Polymorphism)在一些编程教程中被弄得很神秘,而在另外一些教程中则被忽略,其实它不过是C++语言所支持的一个简单而有用的概念。按照C++标准所言,"多态类型(Polymorphic type)”就是带有虚函数的类类型。从设计的角度来看,"多态对象(Polymorphic object)"就是一个具有不止一种类型的对象,而"多态基类(Polymo...
C++必知必会(三) 设计模式

C++必知必会(三) 设计模式

C++必知必会(三) 设计模式2011-04-14对于任何还不熟悉设计模式的人来说,在对这个领域进行简短的纵览之后,可能会留下这样的印象:设计模式是一个市场营销大骗局,它不过是一些简单的编程技术,或者不过是计算机科学家的玩物。尽管这些印象都有那么一点道理,然而设计模式的确是职业C++程序员工具箱中不可或缺的组件。设计模式是一个被反复谈论的架构主题。它为特定上下文中的常见设计问题提供了解决方案,并描述了这种解决方案的结果。设计模式不仅仅是对技术的简单描述,它...
C++必知必会(四) STL

C++必知必会(四) STL

C++必知必会(四) STL2011-04-14对STL(Standard Template Library)的简短描述并不足以体现其设计上的过人之处,接下来的文字不过是鼓励你深入学习STL的“开胃小菜”。STL并不仅仅是一个库,它更是一种优秀的思想以及一套约定。 STL包含三大组件:容器、算法和迭代器。容器用于容纳和组织元素;算法执行操作;迭代器则用于访问容器中的元素。这些都不是什么新东西,许多传统的程序库也都包含类似的组件,并且...
C++必知必会(五) 引用是别名而非指针

C++必知必会(五) 引用是别名而非指针

C++必知必会(五) 引用是别名而非指针2011-04-14引用(reference)是一个现有对象的别名。用对象来初始化引用之后,那么对象的名字或引用的名字都可以用于指向(refer to)该对象:int a = 12;int &ra = a;--ra; // a == 11;a = 10; // ra = 10;int *ip = &ra;人们常常会将引用和指针相混淆,原因大概在于C++编译器通常采用指针的方式实现引用,但引用其实不是指...
Vczh Serialization Demo :在网络上传递复杂对象

Vczh Serialization Demo :在网络上传递复杂对象

Vczh Serialization Demo :在网络上传递复杂对象2011-04-18陈梓瀚今天将Serialization进行了重构,让其支持容器。于是使用以前的基础设施就能完成这 个Demo了。为什么要做成这个样子呢?因为模板没有运行时匹配功能。虽然仍然大量 使用模板,但是接口上就没有了。模板被用来处理其他的事情。这个程序分为服务器 端和客户端两个部分,使用Socket连接。服务器端监听到一个客户端之后将一棵树发送过去 之后退出。客户端接收到这棵树...
<< 131 132 133 134 135 136 137 138 139 140 >>