2024年java sdk11 基础类

java sdk11 基础类文章目录 c 11 基础知识点 初始化 一切皆可 初始化 并且可以不加 符号 initializer list 容器 decltype array forward list 可变模板参数 emplace 传递参数包 传递对象 总结 c 11 基础知识点 初始化

大家好,我是讯享网,很高兴认识大家。



文章目录

  • c++11基础知识点
    • 初始化,一切皆可{}初始化,并且可以不加=符号
    • initializer_list容器
    • decltype
    • array
    • forward_list
    • 可变模板参数
    • emplace
        • 传递参数包:
        • 传递对象:
      • 总结:

c++11基础知识点

初始化,一切皆可{}初始化,并且可以不加=符号

 
讯享网 
讯享网

initializer_list容器

 

decltype

讯享网

array

对标的是静态数组,指针解引用,数组越界的情况。

 

forward_list

就是一个单链表,单项迭代器

可变模板参数

原理

 

使用的是编译时递归,而不是采用c语言的方java sdk11 基础类式,并没有把每一个参数都存储起来。

实际用途

 

emplace

原理:

 

在这里插入图片描述

可以接受参数包用于原地构造对象,也可以接受已经构造好的对象。

参数包:

系列接口使用了可变参数模板(variadic templates),因此你可以直接传递多个参数来调用对象的构造函数,这允许你直接在容器的内存中构造对象,而不需要先创建临时对象。

已经构造好的对象:

即使你传递的是一个已经构造好的对象, 系列接口仍然会尽可能避免不必要的拷贝或移动操作。具体来说,传递一个对象时, 会利用移动构造函数(如果有),否则会使用拷贝构造函数。

示例:

传递参数包:
 

输出

 
传递对象:
 

输出

 

总结:

  • 参数包: 系列接口可以传递多个参数,这些参数会被传递给对象的构造函数以在容器中直接构造对象,避免了构造临时对象然后移动或拷贝的开销。
  • 传递对象:如果你传递一个已经构造好的对象, 会尽量调用移动构造函数(如果对象是通过 传递的),否则调用拷贝构造函数。
小讯
上一篇 2024-12-30 22:31
下一篇 2024-12-30 11:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/6434.html