学习C++内容,包括理论、源码、实践、课程代码、项目等。
- const那些事
- static那些事
- this那些事
- inline那些事
- sizeof那些事
- 函数指针那些事
- 纯虚函数和抽象类那些事
- vptr_vtable那些事
- virtual那些事
- volatile那些事
- assert那些事
- 位域那些事
- extern那些事
- struct那些事
- struct与class那些事
- union那些事
- c实现c++多态那些事
- explicit那些事
- friend那些事
- using那些事
- ::那些事
- enum那些事
- decltype那些事
- 引用与指针那些事
- 宏那些事
2.1 effective_c++
正在更新...
2.2 C++2.0新特性
-
Spaces in Template Expressions
vector<list<int> > //ok in each C++ version vector<list<int>> // before c++ 11 error error: ‘>>’ should be ‘> >’ within a nested template argument list,c++11后可以正常通过
-
for(decl:col) { statement }
-
如果你自行定义了一个ctor,那么编译器就不会给你一个default ctor 如果强制加上=default,就可以重新获得并使用default ctor.
-
Alias(化名)Template(template typedef)
-
容器-结构与分类
- (1) 序列式容器包括:array(C++2.0新引入),vector,deque,list,forward_list(C++2.0新引入)
- (2) 关联式容器包括:set/multiset,map/multimap
- (3) 无序容器(C++2.0新引入,更换原先hash_xxx为unordered_xxx)包括:unordered_map/unordered_multimap,unordered_set/unordered_multiset
-
学习资料:https://www.bilibili.com/video/av51863195?from=search&seid=3610634846288253061
2.3 C++并发编程v1
学习资料:https://chenxiaowei.gitbook.io/cpp_concurrency_in_action/
2.4 STL源码剖析
stl源码剖析:gcc4.9.1
- array
- deque
- queue and stack
- list
- vector
- typename
- traits
- iterator
- 谈谈STL设计之EBO优化
- rb_tree
- set and multiset
- map and multimap
- hashtable
- myhashtable
- unordered_map
学习自:
https://www.youtube.com/watch?v=eZ8yKZo-PGw&list=PLk6CEY9XxSIAeK-EAh3hB4fgNvYkYmghp&index=4
4.1 极客时间《现代C++实战30讲》
- 堆、栈、RAII:C++里该如何管理资源?
- 自己动手,实现C++的智能指针
- 右值和移动究竟解决了什么问题?
- 容器1
- 容器2
- 异常
- 字面量、静态断言和成员函数说明符
- 是不是应该返回对象?
- 编译期多态:泛型编程和模板入门
- 译期能做些什么?一个完整的计算世界
- SFINAE:不是错误的替换失败是怎么回事?
- constexpr:一个常态的世界
- 函数对象和lambda:进入函数式编程
5.1 C++惯用法
-
对吴老师的代码进行了修改,点击此处直通代码
输入:
map<int, int> mp{ {1, 1}, {2, 4}, {3, 9}}; cout << mp << endl;
输出结果显示:
{ 1 => 1, 2 => 4, 3 => 9 }
-
像Python一样简单输出
-
观察编译过程变化
-
代码环境
Ubuntu 18.04
-
工具
CLion gcc/g++
个人公众号: