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

上犹建设局网站做淘宝的网站有哪些内容吗

上犹建设局网站,做淘宝的网站有哪些内容吗,微信专业开发,页面设计的内容这篇文章当中我们讲一下如何使用C自带的standard array来处理静态数组。 首先什么是静态数组,静态数组通常指的是不会增长的数据,长度是已经确定了的。我们在定义数组的时候就必须确定好长度与类型。 其次C当中也确实给我们提供了一些可以用来处理静态…

这篇文章当中我们讲一下如何使用C++自带的standard array来处理静态数组。

首先什么是静态数组,静态数组通常指的是不会增长的数据,长度是已经确定了的。我们在定义数组的时候就必须确定好长度与类型。

其次C++当中也确实给我们提供了一些可以用来处理静态数组的办法,之前已经介绍过的包括原始数组和STL vector,而C++ library当中还为我们提供了另一个,就是array类型。array的使用方式如下所示:

#include<array>
std::array<int, 5> data;

可以看到,array是基于模板的,我们在定义的时候会分别确定数组的类型与长度。这种写法与C语言类型的数组是相同的,不过目前我们不会深入了解这一部分。

使用array的一个好处是,因为它实际上是一个模板类,所以我们终于可以获得一个数组的长度了,通过调用array.size()就可以获取其长度:

std::array<int, 5> data;
int a = data.size();

如果我们获得一个原始数组,我们希望能够循环打印它的元素的时候,我们需要同时传入数组指针以及它的长度:

void print(int* array, int length) {for (int i = 0; i < length; i++) {std::cout << array[i] << std::endl;}
}

但是当我们想要传入一个array数组的时候,我们又遇到了一个难题,就是确实我们不需要传入两个变量,但是array本身就是需要标明它的长度的:

void print(const array<int, 5>& arr)

如果这样的话,好像也是必须得先把长度传入进去才行,这和之前的原始数组就没有什么区别了。那么如何在不知道standard array是多长的情况下传入一个array?我的想法是需要使用模板函数:

template<int T>
void print(const std::array<int, T>& arr) {for (int i = 0; i < arr.size(); i++) {std::cout << arr[i] << std::endl;}
}

这样我们就可以在不知道array有多长的情况下依然顺利的把array给传入进去了。

在内存储存方式上,array与C语言风格的数组是一样的,都是储存在栈当中的。我们可以直接进入到array文件当中就可以找到library定义的array模板类:

其中我们可以直接看到对于内存的分配,就是很简单的一句话:

_Ty _Elems[_Size];

所以很明显这是栈上申请内存。

同样我们可以看到在内存检查的时候代码如下:

#if _CONTAINER_DEBUG_LEVEL > 0_STL_VERIFY(_Pos < _Size, "array subscript out of range");

很明显,我们只有在debug模式下才会进行边界检查并打印错误信息,但是在release模式下,array的操作是与普通数组完全一样的,这也带来了array很高的使用效率,所以尽可能使用array是很好的选择,因为一方面它可以为我们提供内存检查与长度信息,另一方面在release版本中又不会影响使用新能。

最后一个小细节就是,如果我们来看size函数:

_NODISCARD constexpr size_type size() const noexcept {return _Size;
}

会发现它是直接把我们输入进去的长度返回了,它不会用一个变量储存这个长度信息,因为我们使用的是模板类函数。

以上就是有关于standard array的全部内容了,希望大家喜欢!

http://www.yayakq.cn/news/963992/

相关文章:

  • seo网站推广软件天河区网站建设公司
  • 深圳网站设计公司哪家便宜系统集成
  • 公司网站建设内容建议wordpress淘宝客源码
  • 做挂广告网站网站建设员的薪水
  • 标志空间 网站电商详情页设计教程
  • 做网站报价重庆网站建设川娃子
  • 电脑网站制作教程下载微信公众号平台官网
  • 济南网站维护公司上海公共信息服务平台
  • 一个人可以备案几个网站wordpress首页图片插件
  • 公司做网站设计要注意视频制作软件哪个好用
  • 漏惹网站做网站 设计 文档
  • 台州网站制作案例app企业网站
  • 做电商平台网站有哪些房产交易网站
  • 营销型网站案例分析请专业做网站的老师
  • 喜满堂网站建设网站建设经费放哪个经济科目
  • 南京网站设计平台手机编程app
  • 高端设计参考网站nodejs 网站开发模块
  • 帝国做企业网站海南工程建设资料备案网站
  • 天津网站建设揭秘蓝色旅游网站模板
  • js网站开发视频wordpress程序如何降低版本
  • 杭州网站建设及推广网页模板的制作步骤
  • 最常用的规划网站淄博seo开发
  • 成都高投建设开发有限公司网站网站开发PHP留言本电子版实验作品
  • 网站开发常用字体帝国手机网站模板
  • 用dw做网站怎么做出下拉菜单做网站 负责 域名备案
  • 电子科技网站模板请写出网站建设前期需要做的准备
  • 那个网站上找工程造价私活做怎么做seo网站推广
  • 河源网站优化静态网站可以做哪些内容
  • 北京网站托管的公司哪家好网站开发的单价
  • 淘宝客网站如何备案个人网站建设与维护