当前位置: 首页 > news >正文

销售网站开发步骤石景山区百科seo

销售网站开发步骤,石景山区百科seo,做响应网站的素材网站有哪些,北碚网站建设哪家好个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 C11简介 列表初始化 std::initializer_list std::initializer_list使用场景 decltype关键字 STL中的一些变化 新容器 array forward_list 容器中的一些新…

=========================================================================

个人主页点击直达:小白不是程序媛

C++系列专栏:C++干货铺

代码仓库:Gitee

=========================================================================

目录

C++11简介

列表初始化

std::initializer_list

std::initializer_list使用场景

decltype关键字

STL中的一些变化

新容器

array

forward_list

容器中的一些新方法


C++11简介

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了
C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞
进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。
从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于
C++98/03,C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中
约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一种新语言。相比较而言,
C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更
强大,而且能提升程序员的开发效率,公司实际项目开发中也用得比较多,所以我们要作为一个
重点去学习。


列表初始化

在C++98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。例如:

struct Point
{int _x;int _y;
};
int main()
{int array1[] = { 1, 2, 3, 4, 5 };int array2[5] = { 0 };Point p = { 1, 2 };return 0;
}

C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号(=),也可不添加

int main()
{int i = 0;int j = { 1 };int k{ -1 };cout << i << " " << j << " " << k;int arr1[] = { 1,2,3,4,5 };int arr2[5] = { 0 };int arr3[]{ 1,2,3,4,5 };//添加到new表达式中int* pa = new int[4] {1, 2, 3, 4};return 0;
}

创建对象时也可以使用列表初始化方式调用构造函数初始化

//自定义类型的列表初始化
class Date
{
public:Date(int year,int month,int day):_year(year),_month(month),_day(day){cout << "Date(int year,int month,int day)" << endl;}
private:int _year;int _month;int _day;
};
int main()
{Date d1{ 2024,1,18 };//初始化一个对象,拷贝构造Date d2 = { 2024,1,19 };return 0;
}

注:这里的列表初始化的是直接调用构造函数,而下面的赋值重载看起来和列表初始化差不多,其实两者天差地别;赋值重载是先使用右边的数据构造生成一个临时对象,在赋值重载,而初始化列表是直接调用构造函数。存在类型转化。

std::initializer_list

std::initializer_list文档介绍

功能:可以接受任意多个相同类型的参数

std::initializer_list使用场景

  • std::initializer_list一般是作为构造函数的参数,C++11对STL中的不少容器就增加
  • std::initializer_list作为参数的构造函数,这样初始化容器对象就更方便了。也可以作为operator=的参数,这样就可以用大括号赋值。
  • 总结:我们使用初始化列表初始化STL中的容器时,就会将列表生成initializer_list;然后initializer_list作为容器构造函数的参数进行初始化。

decltype关键字

关键字decltype将变量的类型声明为表达式指定的类型

和typeid().name()、auto有很大的区别,typeid().name()推演出变量的类型,decltype是将变量的类型转化为字符串可以打印出来。

int main()
{int i;double j;vector<decltype(i* j)> v1;decltype(i * j) z = 10;cout << typeid(z).name() << endl;cout << z << endl;return 0;
}

 


STL中的一些变化

新容器

下面中圈起来的就是C++11中添加的新容器,最后的unordered_map和unordered_set不同于使用红黑树的map和set是使用hash结构实现;有关hash的内容和知识会在后面的文章中给大家介绍。

array

  • array数组是固定大小的序列容器:它们包含特定数量的元素,这些元素以严格的线性顺序排序。
  • 说白了也是一个数组,只不过和普通的数组比较其越界检查比较严格。

forward_list

是一个单链表,和list的区别在于只支持单向迭代器;并且只支持头插和头删。

容器中的一些新方法

  • 如果我们再细细去看会发现基本每个容器中都增加了一些C++11的方法,但是其实很多都是用得比较少的。
  • 比如提供了cbegin和cend方法返回const迭代器等等,但是实际意义不大,因为begin和end也是可以返回const迭代器的。
  • 容器中一些还有一些关于移动构造移动和移动赋值的一些内容需要有右值引用的知识铺垫,我会在下一篇文章中完整的给大家介绍。

今天给大家分享介绍了C++中常用特性的一部分,由于篇幅问题会在下篇文章中介绍右值引用等其他问题;如果觉得文章还不错的话,可以三连支持一下,个人主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是我前进的动力! 

http://www.dt0577.cn/news/4018.html

相关文章:

  • 网易企业邮箱手机端登录不上咋办seo零基础入门到精通200讲
  • dw做网站字体 别人电脑显示北京营销推广公司
  • 网站建设模板代理关键词热度分析工具
  • 建设网站要点seo算法优化
  • 赣州章贡区旅游景点温州seo团队
  • 六数字域名做网站好不好电商网站设计
  • 做网站的人是什么职位软文营销的经典案例
  • 个人可以建设哪些网站郑州抖音seo
  • 建站一般要多少钱如何做好网络营销推广
  • 模板手机网站建设公司seo优化排名易下拉效率
  • 滕州营销型网站建设百度seo排名优化费用
  • 华夏望子成龙网站开发背景百度推广是什么工作
  • 南京网站建设的公司优化大师官方
  • wordpress托管站点福州网站seo公司
  • php网站标题修改杭州seo论坛
  • 在国外做h网站怎么样河南关键词排名顾问
  • 广州网站制作电话网站出售
  • 做门户网站用什么系统好广西seo经理
  • wordpress 发表代码上海百度seo网站优化
  • 江苏专业做网站上海专业seo
  • 网站建设在哪里发布职业培训网络平台
  • 在Vs中做网站接口优化方案丛书官网
  • 接做施工图的网站windows优化软件哪个好
  • 如何做自动交易网站郑州官网关键词优化公司
  • 怎样制作简单的网页站长工具seo综合查询5g
  • 企业网站做的公司廊坊seo优化
  • html公益网站模板seo做得比较好的公司
  • 南宁网约车资格证模拟考试免费网站seo诊断
  • 晓风彩票网站建设源代码授权网站优化排名推荐
  • 响水做网站哪家最好长沙网站建设公司