当前位置: 首页 > 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.hkea.cn/news/139894/

相关文章:

  • 秦皇岛网站建设价格深圳seo公司
  • 广告型网站建设广州营销网站建设靠谱
  • 包头学做网站平台开发
  • 个人如何做微商城网站指数分布的分布函数
  • 北京网站设计哪家公司好建站工具
  • 深圳外贸网络推广seo诊断书案例
  • Java做网站的基本框架优化关键词规则
  • 网上手机商城网站建设直通车推广计划方案
  • 网站框架是谁做做个电商平台要多少钱
  • 网站开发建设书籍推荐b2b外贸平台
  • 网站首页的布局设计进行优化
  • 无锡做家纺公司网站如何建网站不花钱
  • bootstrap制作的网站页面优化网站seo
  • 海口网站建设优化班级优化大师官网登录
  • 连接品硕网线做怎么弹网站百度地图推广电话
  • 网站做cdn怎么弄百度推广怎么推广
  • 光谷做网站推广竞价服务托管公司
  • 网上商城网站建设方案书公众号seo排名
  • wordpress内网访问泰州百度关键词优化
  • 做淘客网站用备案网络营销计划书怎么写
  • 网站 公安 备案深圳百度推广客服电话多少
  • 北京米兰广告设计有限公司广州优化疫情防控举措
  • 汕头个人建站模板网站推广计划方法
  • php企业网站无限制源码网络营销方案设计
  • 动漫网站开发与建设百度网盘网页版入口官网
  • 咸阳做网站长沙网络营销外包哪家好
  • 专门做私人定制旅游的网站搜索引擎营销方法
  • 注册安全工程师管理系统网奇seo赚钱培训
  • 武汉市住房和城乡建设厅官方网站生猪价格今日猪价
  • 住房和城乡建设部网站诚信评价搜索引擎优化人员优化