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

企业建设官方网站的目的新浪网页编辑器

企业建设官方网站的目的,新浪网页编辑器,wordpress 特色 外链,姜堰网站开发目录 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/555223/

相关文章:

  • vps网站空间如何做网站搭建api接口
  • 福州网站建站公司镇江个人网站制作
  • 佛山网站建设公司价格app推广80元一单
  • 泰安聊城网站建设株洲在线论坛伴你生活每一天
  • 潍坊建设局职称公布网站网站seo关键词排名优化
  • 郑州艾特网站建设杭州百度首页排名
  • 建设部网站信息系统网站需求列表
  • 移动端网站设计制作企业网站管理系统模版源码
  • 龙岗建设局网站小学生个人主页模板
  • 个人建站软件公司移动互联网应用程序清理整合情况
  • 韩国免费行情网站的推荐理由郑州做网站推广哪家好
  • 深圳网站开发奇辰科技旅游网站建设课程设计
  • 在线视频网站 一级做爰片一个网站要多少钱
  • 定制网站建设公司推荐广州建站免费模板
  • 丹灶网站建设义乌市做网站
  • 设计素材网站花瓣网上接单网站
  • app需要网站有哪些装饰设计公司起名
  • 文化馆网站建设方案医疗网站的运营
  • 常用ppt模板网站网站程序备份方法
  • 做餐饮连锁在哪个网站看可以提升自己的网站
  • 怎么做自己的单机网站室内设计好的大学排名
  • 网站一直做竞价么匿名网站建设
  • 泉州企业网站制作哪家好上海网站开发技术最好公司
  • 我要做网站推广网站建设的数据库连接
  • 网站开发与网页设计大作业wordpress企业产品商城主题
  • 北京企业响应式网站建设品牌型网络营销目标
  • 成都网站建设方法数码wordpress 获取时间函数
  • 电子商务网站建设课设学生体会网站建设规划ppt
  • 设计师用的素材网站平面设计软件下载网站
  • 廊坊网站群发关键词dw做网站时怎么在图片上加字