1- ? str::tr1、variadic templates、nullptr、auto
1、str::tr1命名空间
其中包括shared_ptr和regex,他们都被搬到str命名空间中了
2、https://isocpp.org/blog/2014/03/compiler-support-for-c11-and-c14
可以查看支持的情况
3、C++之父的网站及其它:
https://www.stroustrup.com/
cpluscplus.com,reference,tutorials家庭教师?
cppreference.com
gcc.gnu.org
4、标准库的源代码用什么看?
windows Grep 2.3:全文检索工具
其实vs里面也都有
5、 cout << __cplusplus << endl;
竟然是199711
6、variadic templates
模板里面的可变参数,这个先跳过,和printf类似,用起来应该还好
7、一些小的东西:
spaces in template epressions模板表达式里的空格
nullptr and str::nullptr_t
用 nullptr来代替0或者NULL(NULL其实就是0)
没有再深入decttype了
auto:用在迭代器里面比较多
[]开头的lambda表达式,这个是没有名称的函数
统一初始化:
之前的初始化可能发生在小括号、大括号或者赋值符号后面
变成:只用大括号
arry原来这这里用的这么多 !!!
接下来是深入统一初始化,这个先只听听,不做记录,第五课开始
多余一个参数的explicit
禁止你对3个参数 的进行转换
有什么容器不能让你改变元素内容?关联式容器都不可以!!
C++标准库多了两个begin()和end()的全局函数
=default,=delete
delete:我不要它,default:即使你定义了,我还是用默认的那一个。
big three(copy构造、copy赋值、析构)、big five。
move是什么?
上面这个图就可以看懂了。
func用了default,这个一般的函数不可能有默认版本,所以会报错。
=default对于big-five之外的,无意义。
默认有如上4个函数,定义一个空类后就可以直接使用。
一般来说,类中有指针,大概率就要写big three:
浅copy:只是把4个字节copy过去,两个指针指向一块内存。
深copy:把指针所指的内存也要copy一份
浅和深是针对类内有指针的情况来说的。
单例设计模式可以被copy吗?不可以,怎么设计?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义