06 2018 档案
摘要:安装包百度云: 链接:https://pan.baidu.com/s/1oF_DH7Xh6yun6fFUDB2H3w 密码:1z7e 破解步骤:1. 首先打开你的starUML安装目录,并找到LicenseManagerDomain.js, starUML是用NodeJS写的,这个文件就是判断注册用
阅读全文
摘要:什么是左值、右值 最常见的误解: 等号左边的就是左值,等号右边的就是右值 左值和右值都是针对表达式而言的, 左值是指表达式结束后依然存在的持久对象 右值是指表达式结束时就不再存在的临时对象区分: 能对表达式进行取地址,则为左值 ;否则为右值 为什么引入右值引用?std::vector<String>
阅读全文
摘要:一、Remove()函数 remove只是通过迭代器的指针向前移动来删除,将没有被删除的元素放在链表的前面,并返回一个指向新的超尾值的迭代器。由于remove()函数不是成员,因此不能调整链表的长度。remove()函数并不是真正的删除,要想真正删除元素则可以使用erase()或者resize()函
阅读全文
摘要:转自:http://www.cnblogs.com/xusd-null/p/3698969.html#3081606 本文解释了bind 是如何工作的。为了清晰,图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现. 1. bind 可以用来将用户提供的需要一个
阅读全文
摘要:在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了: ./tests: error while loading shared libraries: xxx.so.0:cannot open s
阅读全文
摘要:pclint(收费) http://www.gimpel.com/html/pcl.htmpc-lint是资格最老,最强力的代码检查工具,但是是收费软件,并且配置起来有一点点麻烦。 ccpchecker http://cppcheck.net/ CppCheck 是免费的开源软件。使用起来也很方便。
阅读全文
摘要:std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。 例如std::pair<int,float> 或者 std::pair<double,double>等。 pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。
阅读全文
摘要:不是原创的,但基本上收入了各个网站dos命令了基本上可以作为电子书使用,希望对各位有用net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 net use h: \\ip\c$ "密
阅读全文
摘要:为什么需要类型萃取(特化) 前面我们提到了迭代器,它是一个行为类似于smart pointer之类的东西,主要用于对STL容器中的对象进行访问,而且不暴露容器中的内部结构,而迭代器所指对象的型别称为该迭代器的value type;如果在实际的工程当中我们应该怎么获取STL容器中对象的value ty
阅读全文
摘要:迭代器是一种检查容器内元素并遍历元素的数据类型。可以替代下标访问vector对象的元素。 每种容器类型都定义了自己的迭代器类型,如 vector: vector<int>::iterator iter; 这符语句定义了一个名为 iter 的变量,它的数据类型是 vector<int> 定义的 ite
阅读全文
摘要:可变模板参数 C++11新特性 可变模板参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数 由于可变模版参数比较抽象,使用起来需要一定的技巧,所以它也是C++11中最难理解和掌握的特性之一 参数包(parame
阅读全文
摘要:模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程。对于函数模板而言,模板实例化之后,会生成一个真正的函数。而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始化。模板的实例化分为隐式实例化和显示实例化。 对函数模板的使用而言,分为两种调用方式,一种是显示模板
阅读全文
摘要:模板声明 template<typename/class T>, typename比class最近后添加到C++标准。 常规模板,具体化模板,非模板函数的优先调用顺序。 非模板函数(普通函数)> 具体化模板函数 > 常规模板 显示具体化: 具体化表示为某一特定的类型重写函数模板,声明的含义是使用独立
阅读全文
摘要:我们都知道,在STL中基本上都使用了模板类的声明,即template。在模板类的声明中,我们有两种方式: 在这里,class和typename是相同的。也就是说,在声明一个template type parameter(模板类型参数)的时候,class和typename意味着 完全相同的东西。 但是
阅读全文
摘要:一、指针与数组 指针:指针本身也是一个变量,它的内容是指向的内容的地址。指针同样有类型的区分,char 的指针只能指向char型数据,int 指针指向int型数据。但是指针所占内存单元的大小(即其内容)是跟操作系统的地址位数有关,比如32位地址的系统,那么指针所占的内存单元就是4个字节,16位就是2
阅读全文
摘要:C++输入过程中,是把输入加载到缓冲区中,然后对缓冲区中的字符进行读取。cin,cin,get(),cin.getline()三个函数虽然都能进行数据读取,但是它们对缓冲区内数据的处理方法是不同的(如遇到[space],[enter]的处理方法)。本文将简单介绍cin,cin.get(),cin.g
阅读全文
摘要:对C语言有所了解的人都知道main函数是整个程序的入口,但是其实不然,在内核中可以使用链接器来设置程序的开始地方。当内核使⽤⼀个exec函数执⾏C程序时,在调⽤main函数之前先调⽤⼀个特殊的启动例程,可执⾏程序将此例程指定为程序的起始地址。启动例程从内核获取命令⾏参数和环境变量,然后为调⽤main
阅读全文
摘要:所谓预编译头,就是把头文件事先编译成一种二进制的中间格式,供后续的编译过程使用。GCC编译头文件后的中间文件是*.gch。如何将头文件编译为.gch文件呢?用g++编译,格式:g++ xxx.h把.h文件当成.cpp文件一样来编译。如果需要控制编译细节,比如常量定义之类,可加上其它选项。运行之后,会
阅读全文
摘要:单利模式的优缺点和使用场景 首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存
阅读全文
摘要:1 PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implementation)是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。 PIMPL(Private Implementation 或 Pointer to Impleme
阅读全文
摘要:类对象和其他类型对象的转换 转换场合有: 赋值转换 表达式中的转换 显式转换 函数调用, 传递参数时的转换 转换方向有: 由定义类向其他类型的转换 由其他类型向定义类的转换 由其他类型向定义类的转换 由其他类型(如int、double)等向自定义类的转换是由构造函数来实现的,只有当类的定义和实现中提
阅读全文
摘要:在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__ 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息
阅读全文
摘要:一:回顾 (1)c++中的string类是在面试中和笔试中经常考的题目; 工程代码免费下载 string类的自行实现 (2)c++中的string类和fstream类合起来是处理外部数据的利器; (3)string类经常用到find find_first_of find_first_not_of f
阅读全文
摘要:log4..简介 log4..是基于log4j的一系列的c++移植版本,使用了log4j的模式结构,目前主要有以下几个版本: 1. log4cxx, 目前是到0.10.0版,Apache下的孵化项目,不能独立编译,依赖于APR,编译比较麻烦,2008年以后就没再更新 2. log4cplus,目前最
阅读全文
摘要:概述 今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。 C++的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很
阅读全文
摘要:1、流的控制 iomanip 在使用格式化I/O时应包含此头文件。 stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2、类继承关系 ios是抽象基类,由它派生出istream类和ostream类, iostream类支持输入输出操作,iostream
阅读全文
摘要:今天在阅读《google c++ 编程风格》的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意: 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理由是 前置自增 (++i) 通常要比后置自增 (i++) 效率更高。于是我查了查前置++和后置++的区别。 注意
阅读全文
摘要:C++11的一大亮点就是引入了Lamda表达式。利用lamda表达式,可以方便的定义换个创建匿名函数。对于C++这么语言来说,"Lamda表达式"或"匿名函数"这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lamda表达式的功能,如C#,Python等。 声明Lambda表达式 La
阅读全文
摘要:在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的。 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) int main(int argc, char *argv[]) { string a="hell
阅读全文
摘要:C++内部定义的数据类型(int , float, …)的数据操作可以用运算符号来表示,其使用形式是表达式;用户自定义的类型的数据的操作则用函数表示,其使用形式是函数调用。为了使对用户自定义数据类型的数据的操作与内置的数据类型的数据的操作形式一致,C++提供了运算符的重载,通过把C++中预定义的运算
阅读全文
摘要:一、为什么引入友元机制? 总的来说就是为了让非成员函数即普通函数或其他类可以访问类的私有成员,这确实破坏了类的封装性和数据的隐蔽性,但为什么要这么做呢? (c++ primer:尽管友元被授予从外部访问类的私有部分的权限,但它并不与面向对象的编程思想相悖,相反,他们提高了公有接口的灵活性)。要理解这
阅读全文
摘要:解析:成员函数会用this指针自动隐藏第一个操作数(左操作数) 1、把全局函数转化成成员函数,通过this指针隐藏左操作数。 Test add(Test &t1,Test &t2) ==> Test add(Test & t2); 2、把成员函数转化成全局函数,多了一个参数 vpid printAB
阅读全文
摘要:前言 c++对象模型可以概括为以下2部分 1、语言中直接支持面向对象程序员设计部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等待。 2、对于各种支持的底层实现机制 在c语言中,“数据”和“处理数据的操作(函数)”是分开来声明的,也就是说,语言本身并没有支持“数据和函
阅读全文
摘要:const修饰类的成员函数const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点。https://www.cnblogs.com/ctho
阅读全文
摘要:0.static修饰类中成员,表示类的共享数据 1.static类成员 在C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系。这句话什么意思?就是static不会想普通类数
阅读全文
摘要:函数调用过程解析 func里的a存储在调用fun函数时开辟的栈空间里,这块栈只在调用func时对func可用,调用结束后返回的a,其实是暂存在寄存器里的(一般情况下是eax),而返回到main里时,main又会把返回的值拷贝到自己所有的栈空间里(在这里是以临时变量的形式)。所以不管是func还是ma
阅读全文
摘要:new 和 delete 是 C++ 用于管理 堆内存 的两个运算符,对应于 C 语言中的 malloc 和 free,但是 malloc 和 free 是函数,new 和 delete 是运算符。除此之外, new 在申请内存的同时,还会调用对象的构造函数,而 malloc 只会申请内存; del
阅读全文
摘要:参考自:https://blog.csdn.net/sunSHINEEzy/article/details/78122485 构造函数之默认构造函数(调用的构造函数不用传递参数) 两种实例化方式都是默认构造函数 构造函数之初始化列表 参考自:https://blog.csdn.net/sunSHIN
阅读全文
摘要:我们知道在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情况会产生临时对象: 1,以值的方式给函数传参; 2,类型转换; 3,函数需要返回一个对象时; 现在我们依次看这三种情况: 一,以值的方式给函数传参。 我们知道给函数
阅读全文
摘要:先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错 1>d:\myproject\visual studio 2013\projects\myc++\main.c(71): error C2016: C 要求一个结构或联合至少有一个成员 b) C语言中的结构体只涉及到数据结
阅读全文
摘要:C++中的引用: 引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 其格式为:类型 &引用变量名 = 已定义过的变量名。 引用的特点: ①一
阅读全文
摘要:1、const基础知识(用法、含义、好处) const在 * 左边,变量为const; const在 * 右边,指针为const. int func1(const) 初级理解:const是定义常量==》const意味着只读 const好处 //合理的利用const 1、指针做函数参数,可以有效的提高
阅读全文
摘要:一、namespace命名空间 1.C++命名空间基本常识所谓namespace,是指标识符的各种可见范围。c++标准程序库中的所有标识符都被定义与一个名为std的namespace中。 1.1:<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器includ
阅读全文
摘要:1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。 栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。 在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序
阅读全文
摘要:下面的例子是用qq的smtp服务器。 其中的命令说明如下 可能遇到的问题是 1、首先telnet命令不存在,自己去百度下安装即可,很简单。 2、在和服务器通讯时 helo sis,回车后可能会出现【502 Error: command not implemented】,可以重新输入helo sis,
阅读全文
摘要:高级版参考:https://blog.csdn.net/u010700335/article/details/40979037
阅读全文
摘要:版本控制系统 > Git 分布式 > Subversion 集中式 1. 安装git: # apt-get install git //root权限 $ sudo apt-get install git //一般用户权限 2. 注册用户名: www.github.com 3. 初始化本地仓库 $ g
阅读全文
摘要:C++中经常使用一个常量或变量初始化另一个变量,例如: double x=5.0; double y=x; 使用类创建对象时,构造函数被自动调用以完成对象的初始化,那么能否象简单变量的初始化一样,直接用一个对象来初始化另一个对象呢? 答案是肯定的,以point类为例: point pt1(2,3);
阅读全文
摘要:动态变量和静态变量的区别: 1、存储位置 动态变量:存储在内存出栈数据区 静态变量:存储在全局数据区(静态数据区) 2、生命期 动态变量:根据你定义的位置确定,比如你在一个函数中定义的,那么超出该函数范围变量将失效 静态变量:程序结束时才释放 3、作用域 动态变量:同样的要根据你定义的位置才能确定,
阅读全文
摘要:第一步、Ctrl+Alt+F1进终端,log in之后,输入watch nvidia-smi,查看英伟达的显卡驱动还在不在。如果有显卡信息显示,转到第三步,如果没有转第二步。第二步、安装Nvidia显卡驱动,按部就班: dpkg -l | grep -i nvidia 系统将显示出所有安装的nvid
阅读全文
摘要:问题: 写了一个server和一个client,UNIX套接字的,server不断接收消息并打印出来,client是一个交互程序,输入一个消息回车发送,接着又可以输入消息。出问题了:当server监听着,client第一次发送消息成功,server接收并打印出来了。client第二次发送消息没成功并
阅读全文
摘要:我们知道,服务器并发模型通常可分为单线程和多线程模型,这里的线程通常是指“I/O线程”,即负责I/O操作,协调分配任务的“管理线程”,而实际的请求和任务通常交由所谓“工作者线程”处理。通常多线程模型下,每个线程既是I/O线程又是工作者线程。所以这里讨论的是,单I/O线程+多工作者线程的模型,这也是最
阅读全文
摘要:有时候刚装完虚拟机发现xshell连接失败,或者使用ftp连接失败。(博主用的是unbuntu,其他linux系统可能在命令上稍有差别,但方法是一样的。 xshell连接失败: ftp连接失败: 首先运行下面两条命令 如果这两条命令之后还没解决问题,在尝试下面的方法: 尝试方法: 1,重新启动lin
阅读全文
摘要:解决Windows 10下Wireshark运行问题在Windows 10下,安装Wireshark时候,提示WinPcap不被系统系统支持。这是由于最新版的WinPcap 4.1.3只支持到Windows 8。如果在Windows 10下安装,就会提示不兼容。这个问题有两种解决办法。第一种办法是,
阅读全文
摘要:fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式); 其中, “文件指针名”必须是被说明为FILE 类型的指针变量; “文件名”是被打开文件的文件名; “使用文件方式”是指文件的类型和操作要求。 “文件名”是字符串常量或字符串数组。 例如: FILE *fp; fp=("file a","r"); 其意义是在当前目录下打开文件...
阅读全文
摘要:open函数相关的: /* open 是系统调用 返回的是文件句柄*/ fopen函数相关的: /* open是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api */ 函数说明:fileno()用来取得参数stream 指定的文件流所使用的文件描述词. 实例:
阅读全文
摘要:功能: 1、删除目录 2、删除文件 3、删除不为空的目录即下属文件
阅读全文
摘要:文件传输协议(FTP)使得主机间可以共享文件。 FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。控制连接使用类似 TELNET 协议在主机间交换命令和消息。 FTP 的主要功能如下: 提供文件的共享(计算机程序 / 数据); 支持间接使用远程计算机
阅读全文