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

广州网站建设及推广40岁学平面设计能找到工作吗

广州网站建设及推广,40岁学平面设计能找到工作吗,市场调研公司如何赚钱,住房和城乡建设管理局目录 一、列表初始化 1、一般的列表初始化 2、容器的列表初始化 二、声明 1、 auto 2、decltype 3、nullptr 三、 范围for 一、列表初始化 1、一般的列表初始化 在C98中#xff0c;标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。 int main() {…目录 一、列表初始化 1、一般的列表初始化 2、容器的列表初始化 二、声明 1、 auto 2、decltype 3、nullptr 三、 范围for 一、列表初始化 1、一般的列表初始化 在C98中标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。 int main() {int array1[] { 1, 2, 3, 4, 5 };int array2[5] { 0 };return 0; } 而在C11扩大了用大括号括起的列表(初始化列表)的使用范围使其可用于所有的内置类型和用户自定义的类型使用初始化列表时可添加等号()也可不添加。 注new 表达式初始化时一定不能写等号。 int main() {int x1 1;int x2{ 2 };int array1[]{ 1, 2, 3, 4, 5 };int array2[5]{ 0 };int* pa new int[4]{ 0 }return 0; } 创建对象时也可以使用列表初始化方式调用构造函数初始化。如下图的d2和d3。 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 d2{ 2022, 1, 2 };Date d3 { 2022, 1, 3 };return 0; } 2、容器的列表初始化 在 vector 和 list 这样的容器中如果我们需要插入数据的话我们就要通过 push_back 这样的函数去一个一个插入。但是在c11中我们可以通过如下方式去插入数据等号也可以省略。 vectorint v1 { 1,2,3,4 };listint lt1 { 1,2,3,4,5,6,7 }; 这种插入的方式就非常方便那么这种方式是怎么实现的呢实现这种方式就需要一个新的容器 了这个容器叫 initializer_list。 它是C11新增的容器提供了 begin 和 end 函数用于迭代器遍历以及获取容器中的元素个数的 size 函数。 C在语法层面会把 { } 认成 initializer_list下面我们来看一看{ }的类型是什么 auto x { 1,2,3,4,5,6 }; cout typeid(x).name() endl; 从上图中我们发现该变量的类型就是 initializer_list 。 那么我们再来看一看vector的构造 上面的3就是实现了 initializer_list 这样就使得我们可以像上面那样对容器进行构造。 当用列表对容器进行初始化时会被认为是initializer_list类型此时不管有多少个值都能够被初始化vector而以前我们必须使用 push_back 一个一个将元素插入。 所以现在有了C11列表初始化的功能我们也可以给我们自己之前模拟实现的vector和list容器加上这个功能下面我就来给vector加上这个功能。 实现思路遍历initializer_list 中的元素然后push_back进要初始化的容器当中。 vector(initializer_listT il):_start(nullptr), _finish(nullptr), _endofstorage(nullptr) {typename initializer_listT::iterator it il.begin();while (it ! il.end()){push_back(*it);it;} } 二、声明 1、 auto 在C98中auto是一个存储类型的说明符表明变量是局部自动存储类型但是局部域中定义局部的变量默认就是自动存储类型所以auto就没什么价值了。C11中废弃auto原来的用法将其用于实现自动类型推断。这样要求必须进行显示初始化让编译器将定义对象的类型设置为初始化值的类型。 我们直接来使用一下它  int main() {int i 10;auto p i;cout i: typeid(i).name() endl;cout p: typeid(p).name() endl;mapstring, string dict { {sort, 排序}, {insert, 插入} };//mapstring, string::iterator it dict.begin();auto it dict.begin();cout it: typeid(it).name() endl;return 0; } 2、decltype 关键字decltype将变量的类型声明为表达式指定的类型即根据表达式的实际类型推演出定义变量时所用的类型。 上面我们用到的 typeid 也能够推导出变量的类型那么它们有什么区别呢 typeid拿到的只是类型的字符串不能用这个再去定义对象。下面的定义方式就不正确。 typeid(x).name() y 20    //这样定义y不行 decltype 则可以推导出一个变量的类型然后再去定义新的变量。如下图 int x1 10; decltype(x1) y1 20; //可以这样去定义y1 3、nullptr 由于C中NULL被定义成字面量0这样就可能回带来一些问题因为0既能指针常量又能表示整形常量。所以出于清晰和安全的角度考虑C11中新增了nullptr用于表示空指针。 其定义如下 #ifndef NULL #ifdef __cplusplus #define NULL  0 #else #define NULL  ((void *)0) #endif #endif 三、 范围for int main() {string s(hello world);string::iterator it s.begin();while (it ! s.end()){cout *it ;it;}cout endl;for (auto e : s){cout e ;}cout endl; } 上面两种遍历方式的结果完全相同。这是因为范围for本质上是迭代器在代码编译的时候编译器会自动将范围for替换为迭代器的形式去遍历。
http://wiki.neutronadmin.com/news/367201/

相关文章:

  • 更新网站的图片加不上水印百度高级搜索指令
  • 常州制作网站价格国内排名前五的电商
  • 马鞍山网站建设电话建设企业网站的公司
  • 南京网站优化建站o2o苗木网站建设
  • 手机网站建设的公司排名赣州市资讯网
  • 购物网站开发uml图文山网站建设联系电话
  • 网站运营推广策划书哈尔滨市高考录取通知书投递
  • 太原找工作网站个人网站 名称
  • 陕西整站关键词自然排名优化网站的栏目设置
  • 网站设计风格有几种网站没被百度收录
  • 网站组建昆山城乡建设局网站
  • 网站域名查询网址怎样用网站模板做网站
  • 用网站做的简历模板主题森林wordpress
  • 开个人网站需要多少钱百度一下你就知道官网新闻
  • 网站订票策划方案简述什么是响应式布局
  • 网站建设收费情况个人知识库管理系统
  • 网站项目ppt怎么做如何做网站霸屏
  • 怎么把别人网站模板下载出来在一起做网店的网站的怎么购买
  • 做游戏网站公司搜狗搜索网
  • 沈阳专业做网站开发公司成都设计公司展厅设计
  • wordpress 数据站徐州网站建设 网站推广
  • 网站搭建教室软件开发管理平台
  • 福州做网站公司排名扬州市建设厅网站
  • 小企业网站推广如何建设html网站
  • 公司做网站需要提供的材料怎么给自己的公司做网站
  • 网站建设 万户建站免费发布友链
  • 网站建设与管理logo网站维护需要会什么
  • 咸阳建设局网站公司网站建设的改进的建议
  • 响应式网站的设计趋势心悦免做卡领取网站
  • 网站空间后台怎么进入工地建筑模板尺寸