`
897371388
  • 浏览: 529574 次
文章分类
社区版块
存档分类
最新评论

2011年12月编程语言排行榜:C++11它就像一个新语言(1)

 
阅读更多

2011年12月5日Tiobe发布了2011年12月的编程语言排行榜。新一期排行榜Objective-C持续给力跃居第五位,而上一期关注的谷歌Dart语言也上升到第68名,但PHP由第四位跌到第6名。

AD:2013大数据全球技术峰会课程PPT下载

2011年12月5日Tiobe发布了2011年12月的编程语言排行榜。新一期排行榜Objective-C持续给力跃居第五位,而上一期关注的谷歌Dart语言也上升到第68名,但PHP由第四位跌到第6名。从2001年Tiobe编程语言排行榜开始发布至今,C++几乎一直占据着第三名。虽然Perl,Visual Basic和PHP曾经也排到第3名,但和C++相比,他们就显得弱爆了,因为他们最多只能保持几个月而已。然而相比C++,微软的编程语言C#却更被看好,甚至有人认为C#势必会取代C++,C++是垃圾语言。因为微软的大力推广,使用C#的人越来越多,而老将C++却正在被人遗忘。不甘寂寞,2011年C++再次亮剑,13年来第一个重大修订版,C++11横空出世!

下面是前20名的编程语言排行

掀起C++ 11的神秘面纱

C++标准在1998年获得通过后,有两位委员会委员预言,下一代C++标准将“肯定”包括内置的垃圾回收器(GC),但可能不会支持多线程,因为定义一个可移植的线程模型涉及到的技术太复杂了,13年后,新的C++标准C++11也接近完成,你猜怎么着?让那两位委员没想到的是,本次更新还是没有包括GC,但却包括了一个先进的线程库。C++之父Bjame Stroustrup说C++11就像一个新语言,的确,C++11核心已经发生了巨大的变化,它现在支持Lambda表达式,对象类型自动推断,统一的初始化语法,委托构造函数,deleted和defaulted函数声明nullptr,以及最重要的右值引用。

C++11中值得关注的几大变化

Lambda表达式

自动类型推断和decltype

统一初始化语法

Deleted和Defaulted函数

nullptr

委托构造函数

右值引用

C++11标准库

C++于2003年以库技术报告1(TR1)的形式经历了重大改版,TR1包括新的容器类(unordered_set,unordered_map,unordered_multiset和unordered_multimap)和多个支撑正则表达式、元组和函数对象封装器等的新库。随着C++11标准获得通过,TR1和自它首次发布以来新增的库被正式纳入标准的C++标准,下面是C++11标准库的一些特性:

线程库

站在程序员的角度来看,C++11最重要的新功能毫无疑问是并行操作,C++11拥有一个代表执行线程的线程类,在并行环境中用于同步,async()函数模板启动并行任务,为线程独特的数据声明thread_local存储类型。如果你想找C++11线程库的快速教程,请阅读Anthony William的“C++0x中更简单的多线程”。

新的智能指针类

C++98只定义了一个智能指针类auto_ptr,它现在已经被废弃了,C++11引入了新的智能指针类shared_ptr和最近添加的unique_ptr,两者都兼容其它标准库组件,因此你可以在标准容器内安全保存这些智能指针,并使用标准算法操作它们。

新的算法

C++11标准库定义了新的算法模仿all_of(),any_of()和none_of()操作,下面列出适用于ispositive()到(first, first+n)范围,且使用all_of(), any_of() and none_of() 检查范围的属性的谓词:

  1. #include<algorithm>
  2. //C++11code
  3. //arealloftheelementspositive?
  4. all_of(first,first+n,ispositive());//false
  5. //isthereatleastonepositiveelement?
  6. any_of(first,first+n,ispositive());//true
  7. //arenoneoftheelementspositive?
  8. none_of(first,first+n,ispositive());//false

一种新型copy_n算法也可用了,使用copy_n()函数,复制一个包含5个元素的数组到另一个数组的代码如下:

  1. #include
  2. intsource[5]={0,12,34,50,80};
  3. inttarget[5];
  4. //copy5elementsfromsourcetotarget
  5. copy_n(source,5,target);

算法iota()创建了一个值顺序递增的范围,好像分配一个初始值给*first,然后使用前缀++使值递增,在下面的代码中,iota()分配连续值{10,11,12,13,14}给数组arr,并将{‘a’,’b’,’c’}分配给char数组c。

  1. include<numeric>
  2. inta[5]={0};
  3. charc[3]={0};
  4. iota(a,a+5,10);//changesato{10,11,12,13,14}
  5. iota(c,c+3,'a');//{'a','b','c'}

C++11仍然缺乏一些有用的库,如XML API,套接字,GUI,反射以及前面提到的一个合适的自动垃圾回收器,但C++11的确也带来了许多新特性,让C++变得更加安全,高效,易学易用。

如果C++11的变化对你来说太大的话,也不要惊慌,多花些时间逐渐消化这一切,当你完全吸收了C++11的变化后,你可能就会同意Stroustrup的说法:C++11感觉就像一个新语言,一个更好的新语言。

下面是本期编程语言排行榜的其他排名数据和趋势走向。

前10名编程语言走势图

20到50名语言排行

下面是第50到100的编程语言排名

(Visual) FoxPro, ABC, ActionScript, Algol, Alice, Bash, bc, BETA, BlitzMax, Boo, Bourne shell, CFML, cg, CL (OS/400), Clean, Clojure, cT, Dart, Dylan, Eiffel, Euphoria, Factor, Icon, IDL, Io, J, JavaFX Script, JScript.NET, Korn shell, Lingo, MAD, MUMPS, NATURAL, Oberon, Occam, OpenCL, OpenEdge ABL, Oz, PowerShell, REXX, S, Scala, SPSS, Standard ML, SuperCollider, VBScript, Verilog, X10, xBase, Z shell

下面给出了编程语言类别的一年变化趋势

分享到:
评论

相关推荐

    2011 C++最近标准

    C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)。C++ 标准委员会计划在2010年8月之前完成对最终委员会草案的投票,以及于2011年3月3...

    C++11 新标准研读

    C++11包含了核心语言的新机能,并且拓展C++标准程序库,并且加入了大部分的C++ Technical Report 1程序库(数学上的特殊函数除外)。C++ 标准委员会计划在2010年8月之前完成对最终委员会草案的投票,以及于2011年3月3...

    c++语言概述

    C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言[1]。最新正式标准C++11于2011年8月12日公布。

    Visual C++编程宝典十年典藏版part2

    发行时间: 2011年1月1日  本书是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Visual C++ 6.0进行程序开发的各种技术、技巧。全书分4篇,共22章内容,其中,第1篇为技能学习篇,主要包括Visual ...

    C++程序设计综合实验.doc

    圳 大 学 实 验 报 告 课程名称: 面向对象程序设计 实验序号: 试 验 七 实验名称: C++程序设计综合实验 班 级: 姓 名: 隔壁老王 学 号:2010100001 实验日期:2011 年12月 11日 教师签字: 一、实验目的: (1)...

    从零学习编程技术-C语言编程的基础

    [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。...

    第1章-Java语言概述-Java面向对象程序设计教程-微课视频版-程杰-清华大学出版社.pptx

    由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,Gosling首先改写了C++编译器,但很快他就感到C++的很多不足,需要研发一种新的语言来替代它。 这种语言最初被命名为Oak,目标设定在家用...

    c++课程设计

    完成日期:2011年 12月 20日 指导教师评语: ____________ __ ____________________________________________________________________________________________________________________________________________...

    我的第一个C语言

    目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。 C语言是一门...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    基于集合的思维方式:一个例子 100 4.2 集合运算 102 4.2.1 UNION和UNION ALL 103 4.2.2 MINUS 106 4.2.3 INTERSECT 107 4.3 集合与空值 108 4.3.1 空值与非直观结果 108 4.3.2 集合运算中的空值行为 110 ...

    c语言课程设计-职工信息管理系统方案.doc

    XXXXXXX大 学 课程设计说明书 名称 计算机语言C课程设计 —— 职工信息管理系统设计 2011 年 6月20 日至 2011年6 月26 日 共1 周 院 系 . 班 级 . 姓 名 . 学 号 . 系 主 任 . 教研室主任 . 指导教师 . 目 录 一、...

    c++课程设计--保安排班系统.doc

    计算机学院网络工程专业 《程序设计综合课程设计》报告 (2010/2011学年 第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2011年 12月30日 目 录 一、课程设计的目的 2 二、 课程设计的任务 3 三 系统设计...

    cfree C-Free 5 破解汉化版

    瑞星对Loader_CppIDE.exe报错,NOD32对CppIDE.exe报错,金山毒霸2011,360杀毒,卡巴均能通过。 更新说明: 1.去除原英文版中附带的病毒。 2.集合了破解补丁Loader_CppIDE.exe和汉化补丁,重新打包。 3.补充上一版本...

Global site tag (gtag.js) - Google Analytics