C++ 基础知识
一、常用数据结构:
1. list
http://www.cplusplus.com/reference/list/list/
https://www.geeksforgeeks.org/list-cpp-stl/
表示双向链表;单向链表用forward_list;
可以在常数时间复杂度内进行插入和删除,但是不能通过下标直接获取相应位置元素。
缺点是,需要存储额外的链接信息。
二、使用方法
1. C++用Vector定义二维数组并使用
https://blog.csdn.net/a819825294/article/details/52088732
https://leetcode.com/problems/longest-common-subsequence/discuss/348884/C%2B%2B-with-picture-O(nm)
2. for_each loop in C++
https://www.geeksforgeeks.org/for_each-loop-c/
for_each (InputIterator first, InputIterator last, Function fn)
fnc/obj_fnc : The 3rd argument is a function or an object function which operation would be applied to each element.
3. lambda表达式使用:
https://www.geeksforgeeks.org/lambda-expression-in-c/
https://zh.cppreference.com/w/cpp/language/lambda
[ capture clause ] (parameters) -> return-type { definition of method }
三、语言特性
1. 虚函数和纯虚
https://www.cnblogs.com/Flash-ylf/p/11498399.html
2. 函数指针和指针函数
https://blog.csdn.net/luoyayun361/article/details/80428882
3. python和C++的区别
https://blog.csdn.net/luoyayun361/article/details/80428882
4. 什么时候使用引用、什么时候使用指针
https://blog.csdn.net/hao5335156/article/details/53893714
5. 关于C++中的匿名函数-Lambda表达式
https://www.geeksforgeeks.org/lambda-expression-in-c/
https://zh.cppreference.com/w/cpp/language/lambda
https://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html
6. C++中结构体占用空间大小问题:
https://blog.csdn.net/u012243115/article/details/44563331
在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。
什么是内存对齐:从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此;实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列,而不是简单地顺序排列,这就是内存对齐。
结构体字节对齐遵顼两个原则
7.
https://www.geeksforgeeks.org/lambda-expression-in-c/