博文

C++0x FAQ中文版(2011-06-27 23:24:00)

摘要:引用: http://space.itpub.net/17237043/viewspace-688609
译者前言: 很快很快,最新的ISO C++标准C++0x就要来到我们身边了。 今天获得Stroustrup先生的许可,开始翻译由他撰写和维护的C++0x FAQ。我觉得这是一件伟大而光荣的事情,但是我又觉得压力很大,因为我的英语水平很差劲,同时自己的C++水平也很有限,很害怕在翻译过程中出现什么错误,贻笑大方不要紧,而误人子弟就罪过大了。所以,我这里的翻译只能算是抛砖引玉,如果你的英文很好,你可以直接阅读他的原文。或者,你也可以参照两者进行阅读,我想一定会有更多的收获。 当然,我也非常欢迎大家指出翻译中的错误,或者是加入进来和我一起翻译这份文档,共同为C++0x在中国的推广做一点事情。你可以通过chenlq at live.com联系到我。 对自己的翻译做一点说明: 在翻译的过程中,尽量遵照原文含义,可能有时候也会自己根据自己的理解加一点批注,希望可以帮助大家理解。 另外,虽然C++0x标准还没有正式公布,但是现在已经有很多编译器支持C++0x,比如gcc以及它在Windows下的MinGW,Visual C++ 2010也部分支持,大家可以使用这三款编译器尝试这个文档中的例子。 在下面的目录中,已经翻译的问题链接到相应的中文文档,未翻译的问题则链接到英文原文。 感谢所有参与翻译的志愿者:interma,Chilli,张潇,dabaidu,Yibo Zhu,lianggang jiang,nivo,陈良乔 最后,祝大家阅读愉快:) --------------------------------------------------------------------------- 目录 Stroustrup先生关于中文版的授权许可邮件 Stroustrup先生关于C++0x FAQ的一些说明 关于C++0x的一般性的问题: 您是如何看待C++0x的? 什么时候C++0x会成为一部正式的标准呢? 编译器何时将会实现C++0x标准呢?
我们何时可以用到新的标准库文件? C++0x将提供何种新的语言特性呢? C++0x会提供哪些新的标准库文件呢? C++0x努力要达到的目标......

阅读全文(2300) | 评论:0

[转]排序和算法总结(2010-12-25 18:23:00)

摘要:来源: http://blog.csdn.net/yangjixiang_hao123/archive/2009/12/09/4971469.aspx
排序和算法总结 收藏 function change_alt1(btn,style){var btn=document.getElementById(btn);btn.style.display = style 此文于2010-12-24被推荐到CSDN首页
如何被推荐? document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width......

阅读全文(6632) | 评论:3

将CHAR转换成BYTE关键代码(2010-11-23 09:23:00)

摘要:BYTE Hex2Byte(TCHAR cHex)
 {
       if(cHex >= _T('0')
          && cHex <= _T('9'))
      {
             return (BYTE)(cHex- _T('0'));
      }
      else if(cHex >= _T('A')
         && cHex <= _T('F'))
     {
            return cHex - _T('A') + 10;
     }
         return 0xFF;
 }......

阅读全文(4104) | 评论:1

微型加密算法(TEA)及其相关变(2010-10-25 21:22:00)

摘要:微型加密算法(TEA)及其相关变种(XTEA,Block TEA,XXTEA) 都是分组加密算法,它们很容易被描述,实现也很简单(典型的几行代码)。 TEA 算法最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计的。该算法使用 128 位的密钥为 64 位的信息块进行加密,它需要进行 64 轮迭代,尽管作者认为 32 轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 - 1)231」(也就是程序中的 0×9E3779B9)。之后 TEA 算法被发现存在缺陷,作为回应,设计者提出了一个 TEA 的升级版本——XTEA(有时也被称为“tean”)。XTEA 跟 TEA 使用了相同的简单运算,但它采用了截然不同的顺序,为了阻止密钥表攻击,四个子密钥(在加密过程中,原 128 位的密钥被拆分为 4 个 32 位的子密钥)采用了一种不太正规的方式进行混合,但速度更慢了。 在跟描述 XTEA 算法的同一份报告中,还介绍了另外一种被称为 Block TEA 算法的变种,它可以对 32 位大小任意倍数的变量块进行操作。该算法将 XTEA 轮循函数依次应用于块中的每个字,并且将它附加于它的邻字。该操作重复多少轮依赖于块的大小,但至少需要 6 轮。该方法的优势在于它无需操作模式(CBC,OFB,CFB 等),密钥可直接用于信息。对于长的信息它可能比 XTEA 更有效率。 在 1998 年,Markku-Juhani Saarinen 给出了一个可有效攻击 Block TEA 算法的代码,但之后很快 David J. Wheeler 和 Roger M. Needham 就给出了 Block TEA 算法的修订版,这个算法被称为 XXTEA。XXTEA 使用跟 Block TEA 相似的结构,但在处理块中每个字时利用了相邻字。它利用一个更复杂的 MX 函数代替了 XTEA 轮循函数,MX 使用 2 个输入量。 XXTEA算法在加密、解密时需要提供给算法一个自己设计的密码本,此密码本必须严密保护,不可对外泄露,可以是任意字符,甚至可以是中文。 ......

阅读全文(2583) | 评论:0

C++0x FAQ - 下一代 ISO C++ 标准(2010-10-24 15:42:00)

摘要:C++0x FAQ - 下一代 ISO C++ 标准   下面为上述链接部分内容,详细内容请直接跳至该链接!!!!!!!!!!!!!!!!!!!!!!!!!! 问题列表 最高一层的问题 你是怎么理解C++0x的? C++0x什么时候可以变成一个正式的标准? 什么时候编译器会实现C++0x? 什么时候会有一个可用的新标准库? C++0x会提供哪些新的语言特性?(一个列表) 参考下面的问题 C++0x会提供哪些新的标准库? (一个列表)参考 下面的问题 C++0x努力的目标是什么? 有哪些特殊的目标指引着委员会? 我在哪里可以找到委员会的报告? 我在哪里可以找到C++0x的学术或技术论文? (一个列表) 在哪里我可以阅读更多关于C++0x的内容? (一个列表) 存在有关C++0x的视频吗?(一个列表) C++0x难学吗? 委员会是如何运作的? 委员会有哪些人组成? C++0x的特性会以怎样的顺序实现? 将会有一个C++1x吗? “concepts”怎么了? 存在你不喜欢的特性吗? 关于独立语言特性的问题: __cplusplus 对齐 属性 原子操作 auto(从初始化器中推理型别) C99的特性 enum class (作用域的并且更强类型的枚举) 复制并重新抛出异常 常量表达式 (由constexpr产生和确保) decltype 默认的或删除的函数 (对默认行为的控制) 代理构造器 并行的动态初始与销毁 显示转换操作符 扩展的整数类型 外部模板 for语句,见在范围上使用for语句 后置返回型别语法 (扩展的函数声明语法) 类成员的初始化器 继承的构造器 初始化器列表 (统一且一致的初始化) lambda表达式 局部类作为模板参数 long long 整数 (至少有64位) 内存模型 移动语义,见右值引用 内联的名字空间 阻止缩小 空指针 (nullptr) PODs (广义的) 在范围上使用for语句 原始字符串字面值 右尖括号 右值引用 简单SFINAE规则 静态(编译时)断言 ( static_assert ) 模板别名 模板的typedef,参看模板别名 线程本地存储 ( thread_local ) Uni......

阅读全文(2831) | 评论:0

技术群里网友关于虚析构函数的讲解(2010-08-26 19:18:00)

摘要:class A
class B:public A
如果A* pObj = new B();
delete pObj;
那么如果A::~A是虚的话,则会调用B::~B,然后A::~A
如果A::~A不是虚的话,则只会调用A::~A,不会调用B::~B
在多态实际应用中,使用基类的指针来传递对象远远比直接的使用子类的时候多......

阅读全文(2003) | 评论:0

C++自动释放临时内存[临时对象的应用](2010-07-23 17:03:00)

摘要:在编程过程中经常需要为一个临时指针分配内存,而由于一时的疏附忘记了释放这块内存导致内存泄露。 下面这个类将实现内存自动释放。 class CBufferFree
{
public:
    CBufferFree(LPBYTE& lpBuf):m_lpBufferFree(lpBuf)
    {
    }

    ~CBufferFree()
    {
        if(m_lpBufferFree)
        {
            delete []m_lpBufferFree;
            m_lpBufferFree = NULL;
        }
    }

protected:
    LPBYTE&    m_lpBufferFree;
}; 应用:
void test(void) {        char* pchar = new char[1000];        LPBYTE lpByte = (LPBYTE)pchar;       ......

阅读全文(4071) | 评论:7

C++ 操作符优先级(2010-07-16 14:21:00)

摘要:     优先级     操作符 1 () [] -> . :: ! ~ ++ -- 2 - (unary) * (dereference) & (address of) sizeof 3 ->* .* 4 * (multiply) / % 5 + - 6 << >> 7 < <= > >= 8 == != 9 & (bitwise AND) 10 ^ 11 | 12 && 13 || 14 ? : 15 = += -= etc. 16 , ......

阅读全文(1852) | 评论:0

标准c时间与日期函数(2010-07-16 14:20:00)

摘要:标准c时间与日期函数 asctime() 时间文本格式 clock() 返回自程序开始运行所经过的时间 ctime() 返回特定格式时间 difftime() 两时刻的间隔 gmtime() 返回指向当前格林威治时间的指针 localtime() 返回指向当前时间的指针 mktime() 返回指定时间的日历格式 strftime() 返回日期和时间的单个元素 time() 返回系统的当前日历时间  ......

阅读全文(2010) | 评论:0

C++ I/O(2010-07-16 14:19:00)

摘要:C++ I/O <iostream>库自动定义了一些标准对象: cout, ostream类的一个对象,可以将数据显示在标准输出设备上. cerr, ostream类的另一个对象,它无缓冲地向标准错误输出设备输出数据. clog, 类似cerr,但是它使用缓冲输出. cin, istream类的一个对象,它用于从标准输入设备读取数据. <fstream>库允许编程人员利用ifstream和ofstream类进行文件输入和输出. 一些C++ I/O流(精度,判断等)的行为可以通过操作不同的标志来修改。 Constructors 构造器 bad() 如果出现错误则返回true clear() 清除状态标志 close() 关闭一个流 eof() 如果处于文件结尾处则返回true fail() 如果出现错误则返回true fill() 控制默认填充字符 flags() 操作flags flush() 清空缓冲区 gcount() 返回读取的最后一次输入的字符数 get() 读取字符 getline() 读取一行字符 good() 如果没有出现过错误则返回true ignore() 读取字符并忽略指定字符 open() 创建一个输入流 peek() 检查下一个输入的字符 precision() 设置精度 put() 写字符 putback() 返回字符给一个流 rdstate() 返回流的状态 read() 读取字条符 seekg() 在一个输入流中进行随机访问 seekp() 在一个输出流中进行随机访问 setf() 设置格式标志 sync_with_stdio() 同标准I/O同步 tellg() 使用输入流读取流指针 tellp() 使用输出流读取流指针 unsetf() 清除格式标志 width() 操作域宽度 write() 写字符 ......

阅读全文(2088) | 评论:0