C++基础知识
1. 接口(一种特殊类): a. 类中没有任何成员变量;b. 类中所有成员函数都是public, 而且都是纯虚函数.
2. 引用,别名,与指针不同: a.不存在NULL;b. 被初始化后,不能指向别的对象;c. 必须在创建时初始化。
int i=7; int& r = &i; 1)引用做参数: int a =1; int b = 2; swap(a,b); void swap(int & a, int & b){ int temp; temp =a; a = b; b = temp; }
3. 类初始化initialization 和 assignment的区别
https://blog.csdn.net/l1dian11/article/details/81012439
4. C++设计模式 https://blog.csdn.net/lh844386434/article/details/17928331
5. struct里面的变量有内存对齐问题,为了平台移植性好及cpu读取效率高。 比如:
//平台VS2013下(默认对齐数为8) //练习一 struct S1 { char c1; //1->4 int i; //4 short s2; //2->4 }; printf("%d\n", sizeof(struct S1));//12 //练习二 struct S2 { char c1; //1->2 short s2; //2 int i; //4 }; printf("%d\n", sizeof(struct S2));//8
6. adaptor: https://blog.csdn.net/oLanSeFengYe1/article/details/50232117
7. 顺序性容器(sequential container) vector list区别
vector: >内存连续(一般2倍于需要的内存,当插入太多,不够时会重新申请一大块儿连续内存,把旧的数据copy到新内存), 插入不方便(多时慢),查找方便O(1)
>重载了[],+,+=,< list: >双向链表实现,适合于大批量插入删除,查找速度慢O(n)
>没有重载哪些操作符,只能itr++访问
关联容器(associative container) map set区别
都是红黑二叉树(redblack binarytree)实现的 map: >键值对 key,value = <string, int> //名字,成绩 >key可以重复 set: >只存一个值key = string //名字(有没有这个人) >key不能重复
8. C++ STL 函数们: http://www.docin.com/p-654412722.html