C++
Super高能23
静听花开花落,坐看云卷云舒。
展开
-
linux errno 含义
Linux errno 注解分布在两个文件中,罗列于此,方便查阅。/usr/include/asm-generic/errno-base.h#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file原创 2021-09-08 10:29:20 · 123 阅读 · 0 评论 -
C++重要知识点
C++重要知识点一、#include "filename.h"和#include 的区别#include "filename.h" 是指编译器将从当前工作目录上开始查找此文件。#include 是指编译器将从标准库目录中开始查找此文件。二、头文件的作用加强安全检测。通过头文件可以方便地调用库功能,而不必关心其实现方式。三、原创 2017-01-08 12:52:20 · 628 阅读 · 0 评论 -
C++虚函数表
一、背景知识(一些基本概念)虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。C++ “虚函数”的存在是为了实现面向对象中的“多态”,即父类类别的指针(或者引用)指向其子类的实例,然后通过转载 2017-01-08 20:22:30 · 491 阅读 · 0 评论 -
C++初始化列表详解
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。转载 2017-01-08 18:28:49 · 404 阅读 · 0 评论 -
C++中内存泄漏的几种情况
1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数两种情况下会出现这种内存泄露:一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存;二是在类的构造函数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2. 没有正确地清除嵌套的对象指针3. 在释放对象数组时在delete中没有使用方括号方括号是告诉编译器这个指针指向的转载 2017-01-08 13:00:50 · 725 阅读 · 0 评论 -
Epoll模型详解
Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25-386内核中,该值是1024,搜转载 2016-12-30 17:49:53 · 416 阅读 · 0 评论 -
Linux C++多线程编程
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢转载 2016-12-30 17:41:51 · 376 阅读 · 0 评论 -
记录一些网络编程要点
1,TCP/IP协议族分层结构:应用层(HTTP,FTP...),传输层(TCP,UDP),网络层(IP),数据链路层。2,Socket是对TCP/IP协议中 传输层和网络层的抽象(封装),可以供应用层直接使用。有一个形象的比喻,HTTP比喻为一辆轿车,Socket比喻为一台发动机。3,IP协议本身决定了其不可靠传输;TCP的三次握手建立连接和四次分手断开连接保证了其相对可原创 2017-01-06 17:19:07 · 423 阅读 · 0 评论 -
C++11新版本
C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是香港人翻译的然后由工具转换成简体中文的,有些术语和语言习惯和大陆程序不一样! 我决定结合这两个版本按照我自己的习惯把这篇文章整理到我的博客中.分享给关注我和关注C++11的朋友们.转载 2015-11-02 19:24:33 · 4156 阅读 · 0 评论 -
开发者都应该使用的10个C++11特性
摘要: 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。auto 在C++11之前,auto关键字用来指定存储期。在新标准中,它的功能变为类型推断。auto现在成了转载 2016-12-22 18:14:31 · 404 阅读 · 0 评论 -
centos升级gcc版本遇到的一些问题
centos6.x版本gcc大多为4.7.x,为了使用最新的C++11,gcc版本必须为4.8.1+,但是手动升级会遇到一些问题。现做一些整理。大部分的安装过程就不一一叙述了,网上可以找到很多,但是有一些注意的细节。比如:1,configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+原创 2016-12-08 15:42:28 · 4378 阅读 · 0 评论 -
使用MPFR总结
由于项目中需要用到大数值相关的运算,所以选择使用MPFR,以下为一些使用总结。安装过程 安装环境为Centos相关下载路径 GMP:https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2 MPFR:http://www.mpfr.org/mpfr-current/mpfr-3.1.3.tar.gz1,安装GMPt原创 2016-02-24 20:09:00 · 6185 阅读 · 0 评论 -
GCC编译选项
最近面试的时候,有人问了GCC编译选项的问题,回顾顺便整理一下。其实我更想说的是,一般做项目的话都是有写自己的Makefile吧,基本上写过一次都可以用好久了是吧!在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。GCC最基本的用法原创 2015-11-02 15:18:00 · 495 阅读 · 0 评论 -
boost之-lboost_system
在升级boost版本后,编译出现以下错误/usr/local/include/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'/usr/local/include/boost/system/error_code.hpp:223: undefined refe原创 2015-10-28 15:03:15 · 3682 阅读 · 0 评论 -
"undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(转载 2015-10-28 16:02:37 · 509 阅读 · 0 评论 -
boost之singleton.hpp
老版本中是文件对应在 boost/pool/detail/singleton.hpp使用时 #include 然后 boost::details::pool::singleton_default::instance在新版中文件已经对应到 boost/serialization/singleton.hpp使用时需要 #include 提供了2个方法 boost::se原创 2015-10-28 15:16:56 · 978 阅读 · 0 评论 -
分享一个简单的Makefile
复制以下的代码内容保存为makefile文件,放到对应的项目中,使用make clean和make命令即可。当然,对应的编译选项什么的,自行修改一个。另外这个makefile是需要根据项目中的cpp文件,对应的来修改的,后面再分享一个全自动超强大的makefile。NAME = TargetLINK = g++CC = gccGCC_VERSION =原创 2015-11-13 16:03:47 · 708 阅读 · 0 评论 -
C++实现几种排序算法
有时间再自己实现一遍,先转载一篇以备忘。转载自:http://blog.csdn.net/anialy/article/details/7614012几个常用的排序:1)冒泡排序2)选择排序3)插入排序4)归并排序5)快速排序6)希尔排序具体实现:1. 冒泡排序转载 2015-11-13 18:05:37 · 391 阅读 · 0 评论