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

云南住房与城乡建设厅网站微信的企业网站模板

云南住房与城乡建设厅网站,微信的企业网站模板,为什么做的网站有的有弹窗有的没有,热门活动页面html目录 1.模板类vector 2.模板类array(C11) 3.比较数组、vector对象和array对象 模板类vector和array是数组的替代品。 1.模板类vector 模板类vector类似于string类,也是一种动态数组。您可以在运行阶段设置vector对象的长度,可…

目录

1.模板类vector

2.模板类array(C++11)

3.比较数组、vector对象和array对象


模板类vector和array是数组的替代品。

1.模板类vector

模板类vector类似于string类,也是一种动态数组。您可以在运行阶段设置vector对象的长度,可在末尾附加新数据,还可以中间插入新数据。基本上,它是使用new创建动态数组的替代品。实际上,vector类确实使用new和delete来管理内存,但这种工作是自动完成的。

这里介绍一些基本的实用知识:首先,要使用vector对象,必须包含头文件vector。其次,vector包含在名称空间std中,因此您可以使用using编译指令、using声明或std::vector。第三,模板使用不同的语法来指出它存储的数据类型。第四,vector类使用不同的语法来指定元素数。

下面举例:

#include<vector>
...
using namespace std;
vector<int> vi;//create a zero-size array of int
int n;
cin >> n;
vector<double> vd(n);//create an array of n double 

其中,vi是一个vector<int>对象,vd是一个vector<double>对象。由于vector对象在您插入或添加值时自动调整长度,因此可以将vi的初始长度设置为0.但要调整长度,需要使用vector包中的各种方法。

一般,下面的声明创建一个名为vt的vector对象,它可存储n_elem个类型为typeName的元素:

vector<typeName> vt(n_elem);

其中,n_elem可以是整型常量,也可以是整型变量。

vector类的功能比数组强大,但付出的代价是效率稍低。如果需要的是长度固定的数组,使用数组是更佳的选择,但代价是不那么方便和安全。

2.模板类array(C++11)

array对象的长度是固定的,也使用栈(静态内存分配),而不是自由存储区,因此其效率与数组相同,但更方便,更安全。

要创建array对象,需要包含头文件array。

#include<array>
...
using namespace std;
array<int,5> ai;//create array object of 5 ints
array<double,4> ad = {1.2,2.1,3.43,4.3};

下面的声明创建一个名为arr的array对象,它包含n_elem个类型为typeName的元素:

array<typeName,n_elem> arr;

与创建vector对象不同的是,n_elem不能是变量。

3.比较数组、vector对象和array对象

//4.24
#if 1
#include<iostream>
#include<vector>  //STL	C++98
#include<array>   //C++11
using namespace std;int main()
{//C,original C++double a1[4] = { 1.2, 2.4, 3.6, 4.8 };//STL C++98vector<double> a2(4);//no simple way to initialize in C98a2[0] = 1.0 / 3.0;a2[1] = 1.0 / 5.0;a2[2] = 1.0 / 7.0;a2[3] = 1.0 / 9.0;//C++11 - create and initialize array objectarray<double, 4> a3 = { 3.14, 2.72, 1.62, 1.41 };array<double, 4> a4;a4 = a3;//valid for array objects of same size//use array notationcout << "a1[2]: " << a1[2] << " at " << &a1[2] << endl;cout << "a2[2]: " << a2[2] << " at " << &a2[2] << endl;cout << "a3[2]: " << a3[2] << " at " << &a3[2] << endl;cout << "a4[2]: " << a4[2] << " at " << &a4[2] << endl;//misdeeda1[-2] = 20.2;//含义为:找到a1指向的地方,向前移两个double元素,并将20.2存储到目的地。也就是说,将信息存储到数组的外面。cout << "a1[-2]: " << a1[-2] << " at " << &a1[-2] << endl;cout << "a3[2]: " << a3[2] << " at " << &a3[2] << endl;cout << "a4[2]: " << a4[2] << " at " << &a4[2] << endl;system("pause");return 0;
}
#endif

可以发现:从地址看,array对象和数组存储在相同的内存区域(栈)中,而vector对象存储在另一个区域(自由存储区或堆)中;可以将一个array对象赋给另一个array对象,而数组必须逐个元素复制数据。

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

相关文章:

  • 网站建设目的和功能定位邮件网站怎么做的
  • 科讯怎么建设网站网站建设毕业答辩ppt
  • 长春火车站电话门户网站开发需要
  • seo网站首页推广网站空间买多大的
  • 微信导航网站怎么做东莞企网站建设
  • 做素材网站如何赚钱wordpress免登录支付宝
  • 长沙好的网站建设品牌合肥专门做网站
  • 类似稿定设计的网站简单的网站开发模板
  • 做自己视频教程的网站网站建设合同 代码应不应该给
  • 可视网站开发工具每天三分钟新闻天下事
  • 郑州企业网站开发深圳商标注册公司
  • 网站制作网站开发设计公司的网站详情
  • 温州网站建设培训学校wordpress开发文档pdf
  • 阜南做网站公司长春制作网站企业
  • app 移动网站建设东莞寮步华衍学校
  • 苏州创元投资集团网站wordpress主题制作下载
  • 重庆巴南区网站开发公司服务器上构建企业网站
  • 阿里云搭建网站教程ppt模板大全免费简约大气
  • 响应式网站设计图备案的网站名称可以改吗
  • 四川省省建设厅网站九牧全球市场地位
  • 安徽网站建设产品介绍网站开发需要准备什么软件
  • 宁波网络公司做网站新东方烹饪学校学费价目表
  • 广州专业网站优化公司网站要能被搜到需要做推广嘛
  • 做盗版电影网站wordpress主题英文改中文
  • 山东省住房和城乡建设局网站首页西安网站建设xs029
  • 晋州住房保障建设局网站wordpress多用户博客
  • 中山网站外包太原再次发出通告
  • 免费网站的app怎么让网站排名下降
  • wordpress 颜色选择器关键词排名优化到首页
  • 网站建设入账哪个科目常熟滨江开发区人才网