
C++
文章平均质量分 78
同皆无穷小
C programer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CentOS7升级gcc
Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译1、安装centos-release-sclsudo yum install centos-release-scl2、安装devtoolset,注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推sudo yum install devtoolset-8-gcc*3、激活对应的devtoolset,所以你可以一次转载 2021-12-23 10:25:14 · 498 阅读 · 0 评论 -
函数指针,成员函数指针,重载函数指针
指向函数的指针函数的类型由它的返回值和参数列表决定, 但函数不能返回一个函数类型。01int fce( const char*, ... );02int fc( const char* );03 04转载 2014-05-30 16:04:39 · 1872 阅读 · 0 评论 -
关于 C++ 框架、库和资源的一些汇总列表
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard转载 2014-10-25 20:36:18 · 724 阅读 · 0 评论 -
脚本c接口swig
SWIG是什么? SWIG是一种简化脚本语言与C/C++接口的开发工具。简而言之,SWIG是一个通过包装和编译 C语言程序来达到与脚本语言通讯目的的工具。 。怎么使用SWIG? 首先解释C/C++语言编程的优缺点, 。一个简单的示例: -SWIG接口文件 -swig命令 -创建Perl5模块 -创建Python模块 -快转载 2014-12-10 11:38:55 · 1188 阅读 · 0 评论 -
使用 C++11 编写 Linux 多线程程序
前言在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程序,从保持着几 t 甚或几 p 的数据的数据库系统,到手机上的一个有良好用户响应能力的 app,为了充分利用每个 CPU 内核,都会想到是否可以使用多线程技术。这里所说的“充分利用”包含了两个层转载 2016-11-15 17:23:47 · 479 阅读 · 0 评论 -
cmake cpp构造项目
1.需求[1].使用第三方动/静太库[2].本身代码部分编译为动/静态库[3]多项目管理2.构建一个单独的项目[1]目的:这个项目将生成可执行文件,动态和静态库。先在workspace(or anywhere you like)下建立项目的目录(文件)结构:workspace |—— HelloWorld转载 2017-09-29 18:07:50 · 373 阅读 · 0 评论 -
C++11 std::bind std::function 变参函数
从最基础的了解,std::bind和std::function[cpp] view plain copy /* * File: main.cpp * Author: Vicky.H * Email: [email protected] */ #include #include #include #include int add1(转载 2017-10-17 18:06:14 · 4130 阅读 · 0 评论 -
C++11线程,亲合与超线程
原作者:Eli Benderskyhttp://eli.thegreenplace.net/2016/c11-threads-affinity-and-hyperthreading/转载自:http://blog.csdn.net/wuhui_gdnt/article/details/51280906背景与简介多年来,C与C++标准将多线程及并发处理排斥在外——在“目标机器依赖转载 2017-09-30 16:23:11 · 1159 阅读 · 0 评论 -
C++书
原文链接:https://www.zhihu.com/question/20410487/answer/15055637下面是转载的在博客上看到的一个C++书籍阅读清单,可以参考下:阶段 1《Essential C++》这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只转载 2017-10-13 15:01:44 · 388 阅读 · 0 评论 -
C++内存泄露检查工具
Linux下编写C或者C++程序,有很多工具,但是主要编译器仍然是gcc和g++。最近用到STL中的List编程,为了检测写的代码是否会发现内存泄漏,了解了一下相关的知识。所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括:参见 http://...转载 2018-08-22 08:44:13 · 9271 阅读 · 0 评论 -
C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
分类: C++ 2013-12-24 20:38 25人阅读 评论(0)收藏 举报1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算7、C++各大有名库的介绍——游转载 2013-12-25 12:44:56 · 951 阅读 · 0 评论 -
类成员函数指针
在C++中,函数指针与成员函数指针完全是两个概念,并且相互之间在任何情况下,无法转换! 我们来看这么一个类:#include iostream>class A{private: int a;public: A(int _a): a(_a) {} void f1() const { st转载 2014-05-30 15:51:59 · 805 阅读 · 0 评论 -
C++ 中的 extern “C”
extern “C”在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?答案与分析:C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译转载 2014-01-17 11:17:21 · 596 阅读 · 0 评论 -
GBD调试
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:原创 2014-01-17 11:30:03 · 1252 阅读 · 0 评论 -
继承中构造函数和析构函数地调用顺序
现在,有三个类,类的定义如下class CA{public: CA(){cout ~CA(){cout};class CB:public CA{public: CB(){cout ~CB(){cout};class CC:public CB{public: CC(){cout ~CC(){cout}转载 2014-01-13 17:23:39 · 622 阅读 · 0 评论 -
C++模板 typename跟class的区别
在模板引入c++后,最初定义模板的方法为:template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了: template......在模板定义语法中关键字class与typename的转载 2014-01-13 16:26:15 · 641 阅读 · 0 评论 -
Why C++ Supports both Class and Typename for Type Parameters
Recently, someone asked me why we support both class and typename within C++ to indicate a type parameter since the keywords do not hold any platform significance – for example, class is not meant to转载 2014-01-10 19:41:31 · 811 阅读 · 0 评论 -
epoll 实例
#include#include#include#include#include#include#include#include #include using namespace std;#define MAXLINE 100#define OPEN_MAX 100#define LISTENQ 20#define SERV_PORT 500原创 2014-01-10 00:46:46 · 884 阅读 · 0 评论 -
boost库简介
boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。 boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、转载 2013-12-25 12:39:44 · 627 阅读 · 0 评论 -
c字符串函数
3.memcpy 原型:void *memcpy(void *dest, const void *src, size_t n);4. memccpy 原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count); 用法:#include 功能:转载 2013-12-31 09:52:08 · 608 阅读 · 0 评论 -
C++ 类的内存布局
以下的讨论都是在不用#pragma pack( num )下的结果,num表示以多少个字节对齐。初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点转载 2013-12-30 15:33:30 · 633 阅读 · 0 评论 -
虚析构函数
虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包含至少一个虚函数转载 2014-01-10 19:52:09 · 730 阅读 · 0 评论 -
引用
引用是一种特殊类型的变量,可以被认为是另一个变量的别名。通过引用名与通过被引用的变量名访问变量的效果是一样的。注意问题:1.声明一个引用时,必须同时对它进行初始化,是它指向一个已存在的对象。2.一旦一个引用被初始化后,就不能改为指向其他对象。原创 2014-01-16 21:16:50 · 730 阅读 · 0 评论 -
面向对象程序设计的基本特点
1 抽象 面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 包括两方面:数据抽象和行为抽象 2 封装封装是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行有机地结合,形成类,其中的数据和函数都是类的成员。通过封装使一部分成原创 2014-01-16 21:43:51 · 900 阅读 · 0 评论 -
指向指针的指针
一. 回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如下图所示。 内存地址→6 7 8 9 10 11 12 13 1转载 2014-03-10 11:06:52 · 518 阅读 · 0 评论 -
C++ 类型转换
在C中,类型转换相对比较简单,直接加括号强制转即可,不过这样做的后果,就是很难保证类型安全,所以,在C++中,虽然还允许C方式的类型转换,但是已经成为deprecated的方式了,良好的C++编程习惯都不推荐使用C方式的类型转换了。C++提供了类型相对安全的转换方式,本文的主要内容,就是介绍C++中的各种类型转换方式,以及各自用在什么样的场合下,有什么需要注意的地方,帮助大家更好的掌握类型转换,更转载 2014-03-10 10:32:02 · 704 阅读 · 0 评论 -
linux 守护进程
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。 守护进程的编程本身并不转载 2014-03-13 23:26:12 · 712 阅读 · 0 评论 -
Linux下高并发socket最大连接数所受的各种限制
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit转载 2014-03-13 16:53:51 · 987 阅读 · 0 评论 -
TCP/IP详解学习笔记 这位仁兄写得太好了
TCP/IP详解学习笔记 这位仁兄写得太好了.http://blog.csdn.net/goodboy1881/category/204448.aspxTCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器TCP/IP详解学习笔记(12)-TCP的超时与重传TCP/IP详解学习笔记(11)-TCP交互数据流,成转载 2014-03-06 22:39:40 · 5252 阅读 · 2 评论 -
tcp连接的建立(三次握手)和释放(四次握手)
TCP报文段首部格式:序号:本报文段所发送的数据的第一个字节的序号。确认号ack:期待收到对方下一个报文段的第一个数据字节的序号确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。 若同意连接,则在响应报文段中使得转载 2014-03-11 14:17:55 · 628 阅读 · 0 评论 -
++ 结构体和类的区别
区别:结构是一种用关键字struct声明的自定义数据类型。与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型。1.结构的构造函数和类的构造函数不同。 a.结构不能包含显式的无参数构造函数。结构成员将自动初始化为它们的默认值。 b.结构不能包含以下形式的初始值设定类:base(argument-list);2.对于结构中的转载 2014-03-01 21:28:33 · 676 阅读 · 0 评论 -
[C++]实现委托模型
我对.Net的委托模型印象很深刻,使用委托,可以快速实现观察者模式,免去写很多繁杂重复的代码。遗憾的是,C++并没有提供这样的模型,为了达到相似的目的,需要继承一个类并重写virtual方法,这种做法需要写很多代码,效率比较低下(使用过MFC的应该都能体会到)。然而,在强大的C++面前,没有什么是不可能的,已经有很多人针对这个问题进行过研究,并且实现了各种委托模型,其中最著名的就是FastDele转载 2014-02-08 14:24:07 · 615 阅读 · 0 评论 -
容器的find
stl包括容器、迭代器和算法:容器 用于管理一些相关的数据类型。每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求。容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值。迭代器 用于遍历一个数据集中的每个元素。这些数据集可能是容器或者容器的子集。迭代器的主要优点是它们为任意类型的容器提供一个小巧并且通用(注意通用很重要)的接口。例如,迭代器接口的一个操作是让它转载 2014-01-17 10:41:43 · 941 阅读 · 0 评论 -
函数重载
两个以上的函数,具有相同的函数名,但是形参的个数或者类型不一样,编译器根据实参和形参的类型及个数的最佳匹配,自动确认调用哪一个函数,这就是函数的重载。 重载函数的形参必须不同,即或是个数不同或者类型不同。 int add(intx,int y); void add(int x,int y); //错原创 2014-01-16 21:22:46 · 586 阅读 · 0 评论 -
const
1. const 变量 mean:变量的值不能改变 例:const int j = 0;或者 int co2nst j = 0; j = 1;//error2.const 指针 当const在*号前面,表示指针指向的内容是const(不能通过指针改变指针指向的内容),但指针可以指再向其他地址 当const在*号原创 2013-09-21 12:17:40 · 707 阅读 · 0 评论