随笔分类 -  C/C++

摘要:C与C++中空指针的区别 在C里面,由于处处都要使用指针,所以导致NULL遍布各地。我们先来看C99是怎么定义NULL的: NULL can be defined as any null pointer constant. Thus existing code can retain definiti 阅读全文
posted @ 2017-03-21 15:35 PhiliAI 阅读(27356) 评论(1) 推荐(1)
摘要:重载new和delete 首先借用C++ Primer 5e的一个例子: 这其实进行了以下三步操作: new表达式调用一个名为operator new(或者operator new[])的标准函数,分配一块足够大的,原始的,未命名的内存空间来存储特定的类型或者对象的数组。 编译器运行相应的构造函数以 阅读全文
posted @ 2017-03-17 18:26 PhiliAI 阅读(4444) 评论(0) 推荐(0)
摘要:复制数据的快速方法std::copy C++复制数据各种方法大家都会,很多时候我们都会用到std::copy这个STL函数,这个效率确实很不错,比我们一个一个元素复制或者用迭代器复制都来的要快很多。 比如,我写了一段下面的代码,复制100000000数据量,std::copy的性能要比前两个性能要好 阅读全文
posted @ 2017-03-15 17:53 PhiliAI 阅读(5636) 评论(0) 推荐(1)
摘要:General 每一个C++表达式(一个操作符和它的操作数,一个字面值,一个变量名等等)都代表着两个独立属性:类型+属性分类。在现代C++中 Primary categories 1. lvalue(左值) The following expressions are lvalue expressio 阅读全文
posted @ 2017-02-06 13:29 PhiliAI 阅读(14019) 评论(0) 推荐(6)
摘要:GUI操作顺序问题引发异常: 有时候我们使用写GUI程序的时候会遇到这样的问题:比如在程序中,建立了一个列表的GUI。这个列表是随着时间不断更新的,而且操作也会读取这个列表GUI的内容。 如果这个程序是多线程的程序,而且只是除了GUI的线程不操作,只是其他线程操作这个列表GUI,那么这个问题很简单, 阅读全文
posted @ 2017-01-18 00:01 PhiliAI 阅读(2054) 评论(0) 推荐(0)
摘要:C++中有几种可调用对象:函数,函数指针,lambda表达式,bind创建的对象,以及重载了函数调用符的类。 1. 函数 函数偏基础的东西,在这里不再叙述。重点讲下C++11的某些重要特性和函数指针。 可变形参函数: C++11有两种办法传递可变形参(其实学了模板以后可以用模板的自动递归来展开所传递 阅读全文
posted @ 2016-08-28 00:47 PhiliAI 阅读(4366) 评论(0) 推荐(2)
摘要:1. 如何选择类型的准则 当明确知晓数值不可能为负的时候,应该选择无符号类型。 使用int执行整数运算的时候,在实际应用中,short常常显得太小而long一般和int有一样的尺寸,如果数值超过了int,那么就要用long long(ACM经常用)。 在算术表达的时候不要使用char或者bool,c 阅读全文
posted @ 2016-08-27 10:38 PhiliAI 阅读(514) 评论(0) 推荐(0)
摘要:1. 位域: 1. 在C中,位域可以写成这样(注:位域的数据类型一律用无符号的,纪律性)。 1 struct bitmap 2 { 3 unsigned a : 1; 4 unsigned b : 3; 5 unsigned c : 4; 6 }bit; sizeof(bitmap) == 4;(整 阅读全文
posted @ 2016-08-25 02:54 PhiliAI 阅读(1892) 评论(0) 推荐(1)
摘要:1. extern 变量 extern 表明该变量在别的地方已经定义过了,在这里要使用那个变量。 当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住 阅读全文
posted @ 2016-08-03 21:16 PhiliAI 阅读(1476) 评论(0) 推荐(0)