转 C++常用的类库

2023-05-16

1、系统和网络编程库:ACE     

除了ACE之外,还有很多系统和网络编程方面的程序库。比如在线程库方面,还有ZThread、boost::thread,如果放大到C/C++领域,还有APR,还有CII。在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的C ++0X中几乎肯定有一个网络编程和一个线程库。然而目前看来,ACE仍然是进行系统和高性能网络编程的首选,其地位在一段时间内不会被撼动。它不但是一个实用的程序库、框架集,还是一个典范的设计模式应用范例,非常值得学习。
2、GUI库:
Qt     

传统上Qt被认为是可移植的GUI库,但实际上Qt现在已经是一个比较完整的可移植应用程序框架了,其中包含了大量的工具,比如正则表达式、Web和 Socket类、2D和3D图形、XML解析、SQL类等,甚至还包括了一个完整的容器类库,不过其王牌还是GUI。在目前的跨平台GUI框架中,Qt成熟度最高,已经被一些大公司应用在关键产品中。由于Trolltech对Qt采用的dual license模式,该产品既可以从开源社区获得支持,又能够赚取足够的商业利润,因此其前景也令人比较有信心。      Qt的主要技术特色是其元对象模型。Qt实际上使用的并不是标准的C++,而是标准C++的一个扩展。它通过元对象模型扩展,实现了著名的signal/slot机制,而这一机制也成为Qt的最大特色和优势。      与Qt类似的可移植GUI框架还有wxWidget、FOX等。
3、分布式对象中间件:
ICE     

ICE是分布式对象中间件领域里的后起之秀,可以大致地将其视为“改进版”的CORBA。目前应用在一些大型项目当中,其中包括波音公司主持的下一代陆军作战系统。      ICE的一个特别价值是其代码的范例意义。由于ICE的出现较晚,开发者比较系统地应用了新的C++编程风格,所以成为了研读C++代码的良好目标。
4、正则表达式:boost::regex     

正则表达式是编程工作中最强有力的工具之一。C++的正则表达式支持一直以来是一个软肋。大约在2001年左右,boost中出现了regex库,初步解决了这个问题。但是最初的regex无论在效率上还是可靠性方面都有一些问题,后来经过一次大规模的翻修之后,达到了比较完善的程度。      其他可以选择的替代品还有C语言的pcre库,Qt中的QRegExp类等。
5、矩阵计算:MTL     

自1995年以来,C++在科学计算领域当中取得了巨大的突破。这主要归功于template技术的高级应用,使得C++在科学计算的性能方面取得了巨大的进步,一大批优秀的C++科学计算库涌现出来。比如Blitz++、POOMA、MTL、Boost::uBLAS。而这其中,MTL就功能丰富程度、性能、开发支持和成熟程度来讲,是比较突出的一个,因此可以优先考虑。值得一提的是,2002年,MTL与后来被Intel收购的KAI C++配合,曾经在性能评测中击败了FORTRAN。
6、XML、TinyXml     

C++的XML相关库不少,但是大部分其实都是C库,使用起来自然不那么轻便。其中基于DOM的有TinyXml,基于SAX的当然是Xerces。前者小巧快捷,便于使用,适合做数据交换。后者则是全功能的XML解析器。
7、内存管理:boost::smart_ptr,Hans-Boehm GC  

    C/C++的内存管理是一个永恒的话题。一般来说,C++的开发者倾向于自己管理内存。然而,出乎很多C++开发者意料的是,近期C++的一些领袖人物已经公开宣称,如果不配备自动内存管理机制,用C++编写安全可靠的大型程序是非常困难的。而Bjarne Stroustrup也曾对中国开发者建议,如果没有特别的理由,应该在大型项目中使用自动内存管理工具。因此,今天的C++开发者应当积极地学习和应用自动内存管理设施。      说到自动内存管理,比较轻量级的做法是boost::smart_ptr,而激进的做法是引入完整的GC机制。目前开源而又比较可靠的GC中,Hans- Boehm GC无疑是最受信赖的。作为一个保守的GC,Hans-Boehm GC在性能和功能方面都算是卓越。特别是,使用这个GC,你仍然可以delete、free来自己管理内存,对于我们编程习惯的冲击比较小。
8、配置管理:Lua   

   随着软件系统越来越复杂,对软件的可配置型提出了越来越高的要求。传统上只要通过命令行参数来配置的系统,现在可能需要越来越多的方式和机制。目前越来越受欢迎、并且得到越来越多证实的做法,是将Lua嵌入到C/C++程序中,而用Lua程序作为配置脚本。这种做法的优势是,Lua语言强大灵活,可以适应复杂的配置要求。同时,Lua便于嵌入C/C++程序,而且编译执行速度非常快,可以说是目前解决C/C++程序配置管理问题的一个出色方案。
9、密码及安全:OpenSSL   

   安全是今天进行C/C++编程无法回避和必须重视的问题。然而编写安全的应用程序,特别是跟网络相关的C/C++应用程序,是一件十分困难的事情。可以说,整个业界目前在这个进程上仍然处于“初级阶段”。特别是涉及到大量的安全、密码学相关的算法、规范,如果让开发者自己摸索,其工作量和难度达到了不现实的程度。因此必须借助可靠的相关程序库才有可能提高程序的安全性。在这方面,OpenSSL是目前最好的选择,其内容之全面可靠,已经成为业界标杆。然而,由于安全编程固有的复杂性,即使使用penSSL,开发工作仍然是非常繁琐的。因此我们也希望能够尽快看到更简单、更易用的C/C++安全程序库。

MFC、QT、GTK/GTK+、boost、wxWindows、WTL、Fox、SmartWin++……(还有很多,没见过的不知道)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转 C++常用的类库 的相关文章

  • UDP Linux编程(客户端&服务器端)

    服务器端 服务器不用绑定地址 xff0c 他只需要进行绑定相应的监听端口即可 include lt sys types h gt include lt sys socket h gt include lt pthread h gt incl
  • Visual Studio 与 Visual C++ 关系

    Visual Studio netVisual C 43 43 netVisual C 43 43 MSC VER备注Visual Studio net 2002Visual C 43 43 net 2002Visual C 43 43 7
  • C语言之基本算法08—去掉最高分去掉最低分求平均值

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • MySQL -- Fast Index Creation

    1 fast index creation简介 MySQL5 5之后 xff0c 对innodb表创建或删除辅助索引的效率提升了很多 xff0c 即增加了新的功能fast index creation 因为MySQL5 5之后 xff0c
  • .NET Core2.0 环境下MVC模式的支付宝扫码支付接口-沙箱环境开发测试

    所有配置以及相关信息均可以从PC支付中获取 使用的生成二维码的组件名为QRCoder xff0c 该组件引用了一个第三方实现的System Drawing类库 xff0c 和支付宝官网类似 当面付SDK为Alipay AopSdk F2FP
  • 让自己的网站实现在线编辑office文档

    我们可以通过Office Web Apps xff08 OWA xff09 来实现在线编辑word xff0c excel xff0c power point xff0c one note xff0c 并集成到自己的网站里去 1 准备工作
  • 设置openjdk docker容器的时区

    openjdk 8 jre镜像是基于debian系统的 默认时区是UTC 下面两个方法都可以把时区改为Asia Shanghai 启动java应用时设置jvm参数 jvm参数 Duser timezone 61 Asia ShangHai
  • MYSQL的longtext字段能放多少数据?

    生产上遇到问题 xff0c 同事说MYSQL里的字段放不下5m大小的数据 于是 xff0c 将django model里textfield里的max length变长了 依然无效 xff0c 于是 xff0c 更改mysql的设置 xff1
  • 排查CentOS 7中chronyc sources 时间无法同步问题

    chronyc sources结果显示 controller 这表示时间同步服务器不可到达 经以下步骤成功排除错误 xff0c 供参考 在控制节点 1 检查controller节点服务器的时间同步服务是否开启成功 systemctl sta
  • SIM900A

    介绍 本文介绍SIM900A模块 xff0c 并给出一个使用教程 玉照 caption id 61 34 attachment 2625 34 align 61 34 alignnone 34 width 61 34 350 34 SIM9
  • C#读取excel的有效行数或者最大有效列数

    using System using System Collections Generic using System Linq using System Text using NPOI SS UserModel using NPOI HSS
  • [RQNOJ]PID1-明明的随机数

    http www rqnoj cn problem 1 1 include lt stdio h gt 2 include lt stdlib h gt 3 4 用法 xff1a void qsort void base int nelem
  • arguments

    arguments是什么 xff1f 答 是一个对象 xff0c 是一个长的很像数组的对象 arguments内容是什么 xff1f 答 arguments是函数运行时的实参列表 函数运行期间 xff0c 关键的三个对象 AO 本函数AO上
  • xcode5项目图标添加

    转载文章 地址http www 360doc com content 14 0103 08 14615320 342227413 shtml 最近提交itunesconnect应用时 xff0c 有个警告说缺少120x120图标 xff0c
  • 三款扒站神器

    https www shiyanlou com questions 80548 10个 webzip xff0c HTTrack Website Copier xff0c teleport pro 我主要用2 个配合起来使用 xff0c 效
  • kubeadm部署kubernetes 1.13.1集群

    kubeadm是Kubernetes官方提供的用于快速部署Kubernetes集群的工具 xff0c 本篇文章使用kubeadm搭建一个单master节点的3节点k8s集群 kubernetes部署dashboard可视化插件 xff1a
  • curl 同时发送多个请求

    创建一对cURL资源 ch1 61 curl init ch2 61 curl init 设置URL和相应的选项 curl setopt ch1 CURLOPT URL 34 http test cm a php 34 curl setop
  • 网络通信第四课 C++发送Post请求的完整案例

    说明 当前例子采用boost asio库发送HTTP数据报文 xff0c 采用boost asio streambuf request流封装数据报文 xff0c 在例子的后面 通过string对响应数据包进行分析 xff0c 获取其中的js
  • 玩转X-CTR100 l STM32F4 l BMP280气压计传感器

    我造轮子 xff0c 你造车 xff0c 创客一起造起来 xff01 塔克创新资讯 塔克社区 www xtark cn 塔克博客 www cnblogs com xtark 本文介绍X CTR100控制器 扩展BMP280气压计传感器 xf
  • arduino连接LCD1602A

    接线图 caption id 61 34 attachment 1183 34 align 61 34 alignnone 34 width 61 34 1108 34 LCD1602A接线图 xff08 4位 xff09 caption

随机推荐

  • CURL详解

    目前为目最全的CURL中文说明了 学PHP的要好好掌握 有很多的参数 大部份都很有用 真正掌握了它和正则 一定就是个采集高手了 PHP中的CURL函数库 xff08 Client URL Library Function xff09 cur
  • C++各种类库介绍(转)

    C 43 43 类库介绍 再次体现了C 43 43 保持核心语言的效率同时大力发展应用库的发展趋势 在C 43 43 中 xff0c 库的地位是非常高的 C 43 43 之父 BJARNESTROUSTRUP先生多次表示了设计库来扩充功能要
  • 跨平台C++开源码的两种经常使用编译方式

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 跨平台C 43 43 开源代码为适应各种编译器的编译 xff0c 採用了两种方式方面来适配 一种是makefile方式 以著名的空间数据格
  • 暗渡陈仓:用低功耗设备进行破解和渗透测试

    信息安全技术丛书 暗渡陈仓 xff1a 用低功耗设备进行 破解和渗透测试 Hacking and Penetration Testing with Low Power Devices 美 菲利普 布勒斯特拉 xff08 Philip Pol
  • EPG

    简介 EPG 是Electronic Program Guide的 英文缩写 xff0c 意思是电子节目菜单 IPTV所提供的各种业务的索引及导航都是通过 EPG系统来完成的 IPTV EPG实际上就是 IPTV的一个门户系统 EPG系统的
  • 什么是寄存器

    我们看到的 STM32 芯片已经是已经封装好的成品 xff0c 主要由内核和片上外设组成 若与 电脑类比 xff0c 内核与外设就如同电脑上的 CPU 与主板 内存 显卡 硬盘的关系 STM32F429 采用的是 Cortex M4 内核
  • 编程-函数栈与进程栈

    https mp weixin qq com s QsY3cwpLQ5qthgrpZJkBng 一 代码编程极简进化史 从纸带上的机器码 xff0c 到汇编语言算是比较自然而然的变化 因为汇编语言每一条指令即对应着一条机器指令码 汇编中的j
  • 开源飞控

    OpenPilot 官网 xff1a http www openpilot org WiKi xff1a http wiki openpilot cc 论坛 xff1a http bbs tryfly cn forum php KK飞控 M
  • Windows Server 2008r2 取消屏幕自动锁定

    Windows Server 2008r2取消屏幕锁定 企业网管在日常维护服务器的时候 xff0c 往往不会每次有问题都去机房处理 xff0c 一般都是通过远程连接到服务器终端上 xff0c 但是很多企业网管总是被Server 2008服务
  • JAVA中对List<Map<String,Object>>中的中文汉字进行排序

    转载于 xff1a http blog csdn net flykos article details 54631573 参考 xff1a http www jb51 net article 88710 htm 本篇文章 xff0c 对中文
  • Python maketrans() 方法

    描述 Python maketrans 方法用于给 translate 方法创建字符映射转换表 可以只接受一个参数 xff0c 此时这个参数是个字典类型 xff08 暂不研究这种情况 xff09 对于接受两个参数的最简单的调用方式 xff0
  • vue-cli3 项目从搭建优化到docker部署

    项目地址 vue cli3 project 欢迎 star 原文地址 www ccode live lentoo list 1 创建一个vue项目 相信大部分人都已经知道怎么创建项目的 xff0c 可以跳过这一节 xff0c 看下一节 1
  • 解决Linux:No route to host

    在VPS上面配置了某分布式服务 xff0c 死活跑不起来 xff0c 该配置的都配置了 xff0c 真是见鬼了 日志里面很多 xff1a No route to host 但是 xff0c 我能ping通 xff0c 为了排除是程序自身原因
  • 停止linux的ntpd服务

    service ntpd status service ntpd stop service ntpd status chkconfig list ntpd chkconfig level 35 ntpd off chkconfig list
  • 09.打印“caoliuzhenhao”

    printf 命令用于格式化输出 xff0c 是echo命令的增强版 它是C语言printf 库函数的一个有限的变形 xff0c 并且在语法上有些不同 注意 xff1a printf 由 POSIX 标准所定义 xff0c 移植性要比 ec
  • http://www.seattletechinterviews.com/

    http www seattletechinterviews com 转载于 https www cnblogs com kungfupanda p 6503751 html
  • inode的若干锚

    insert inode hash hash an inode 64 inode unhashed inode 64 hashval unsigned long value used to locate this object in the
  • Swap Nodes in Pairs

    Given a linked list swap every two adjacent nodes and return its head For example Given 1 gt 2 gt 3 gt 4 you should retu
  • Redis

    介绍 官网 xff1a http redis io Redis是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value数据库 xff0c 并提供多种语言的API 从2010年3月15日起 xff0c
  • 转 C++常用的类库

    1 系统和网络编程库 xff1a ACE 除了ACE之外 xff0c 还有很多系统和网络编程方面的程序库 比如在线程库方面 xff0c 还有ZThread boost thread xff0c 如果放大到C C 43 43 领域 xff0c