
C++学习笔记
清冷由木性
一个人内心的强大永远都是建立在对自己工作领域有足够积累的基础上,技术行业更是如此,不要只沉浸在自己工作的小范围内停步不前,加油做一个内心强大的人。
展开
-
C++11中的std::function
看看这段代码先来看看下面这两行代码:std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyPressed;std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyReleased;这两行代码是从Cocos2d-x中摘出来的,重点是这两行代码的定义啊。std::f转载 2015-07-02 14:24:25 · 380 阅读 · 0 评论 -
C语言中函数参数入栈的顺序
C语言中函数参数入栈的顺序先通过一个小程序来看一看: #include void foo(int x, int y, int z) { printf("x = %d at [%X]n", x, &x); printf("y = %d at [%X]n", y, &y); printf("z = %d at [%X]n", z, &z); } in转载 2015-10-19 12:20:23 · 372 阅读 · 0 评论 -
STL中的map、unordered_map、hash_map
在之前使用STL时,经常混淆的几个数据结构,特别是做Leetcode的题目时,对于使用哪一个map,一直没有太明确的概念,事实上,三个容器,有着比较大的区别.1. map 内部数据的组织,基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。2. hash_map 基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是转载 2015-10-19 17:44:21 · 4720 阅读 · 1 评论 -
指针参数传递
指针参数传递1、指针作为参数传递进去的仅仅只是指针的值,而不是指针的地址,或者说只是指针的一份拷贝,例如:void pointer(int *p){ int a = 11; printf("\nthe p is %p , addr is %d, *p is %d",p , &p, *p); *p =11; printf("\nthe p is转载 2015-07-22 15:31:16 · 495 阅读 · 0 评论 -
c++11 lambda表达式详细解析
很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么不妨将他们重构成 lambda 表达式。C++11 的 lambda 表达式规范如下:[ capture ] ( params ) mutable exception attribute ->转载 2015-07-17 19:21:52 · 286 阅读 · 0 评论 -
C++ 静态成员变量和静态成员函数
静态成员变量和静态数据成员并不属于某一个类对象,而是整个类,为所有对象共有,下面介绍 静态成员变量和静态数据成员的一些特征:1.静态成员变量的内存分配于全局区,不同于普通的成员变量,当用sizeof()计算类的大小的时候,静态成员变量是不算在里面的,有如下代码: class A { static int a; static转载 2015-07-30 09:41:09 · 369 阅读 · 0 评论 -
C++指针数组、数组指针、数组名及二维数组技巧汇总
本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧。是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用。一、关于数组名假设有数组:?1int a[3] = {1, 2, 3}1.数组名代表数组第一个元素的地址,注意,不是数组地址(虽然值相等),是数组第一转载 2015-07-16 20:29:02 · 435 阅读 · 1 评论 -
NULL和nullptr和nil和Nil还有NSNull
NULL和nullptr在Clang 6.0 的stddef.h文件中可以找到NULL和nullptr的声明:12345678910111213141516#undef NULL#ifdef __cplusplu转载 2015-07-17 11:35:58 · 624 阅读 · 0 评论 -
C++中的Cast的用法总结
C++中的Cast引言在一次看More Effective C++中,有一节提到了《Prefer C++-Style Casts》。其中列举许多C++ Cast的一些好处,当然这些都是相对于C语言中的强制转换这类而言的。所以首先来了解C++中的Cast。一、Dynamic_Cast我们从适用范围来了解这个操作。转载 2015-07-06 15:45:01 · 1774 阅读 · 0 评论 -
【干货】国外程序员整理的 C++ 资源大全
【干货】国外程序员整理的 C++ 资源大全发表于2014-10-24 10:19| 26548次阅读| 来源伯乐在线| 218 条评论| 作者ingerJoe编程语言C++框架开源摘要:C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。关于转载 2015-07-11 17:46:44 · 762 阅读 · 0 评论 -
c++中const的各种用法
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量 1 #include 2 using namespace std; 3 int main(){ 4 int a1=3; ///non-co转载 2015-07-03 12:35:35 · 369 阅读 · 0 评论 -
#ifndef, #define, #endif 作用
#ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义、文件包含、条件编译)中的一种----条件编译。 在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。 但是在c++语言中,#ifde转载 2015-10-19 16:00:08 · 562 阅读 · 0 评论