摘要:
最近在写代码的时候,出现一个莫名奇妙的错误,查找了一个多小时,代码功能方面没有错误,但是出现一个看不懂的额问题,终于发现错误所在,原来是头文件循环引用了!!! 铭记:实在找不出代码问题所在,不妨查看一下头文件引用是否错误! 我以为我找对问题了,其实不是这个原因。。。 真正的原因是unique_ptr 阅读全文
摘要:
转自:https://www.sohu.com/a/153858619_466939 本想自己写的,看到这个,算了,不献丑了。。 图文有点长,慢慢看 转自:https://www.sohu.com/a/153858619_466939 本想自己写的,看到这个,算了,不献丑了。。 图文有点长,慢慢看 阅读全文
摘要:
准备工作 1、VS2012使用命令行选项查看对象的内存布局 微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout。使用方法很简单,直接在[项目P]选项下找到“visual属性”后点击即可。切换到cpp文件所在目录下输入如下 阅读全文
摘要:
安装包百度云: 链接: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 阅读全文