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/

原文地址:https://www.cnblogs.com/Flash-ylf/p/11494625.html