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

河北城乡建设厅网站百度知道在线问答

河北城乡建设厅网站,百度知道在线问答,杭州专业网站设计制作公司,iis网站服务被禁用【STL三】序列容器——array一、array简介二、头文件三、模板类四、成员函数1、迭代器2、元素访问3、容量4、操作五、demo1、容量(不使用迭代器)2、使用迭代器3、元素访问 at()、front()、back()、data()一、array简介 array 容器是 C 11 标准中新增的序…

【STL三】序列容器——array

  • 一、array简介
  • 二、头文件
  • 三、模板类
  • 四、成员函数
    • 1、迭代器
    • 2、元素访问
    • 3、容量
    • 4、操作
  • 五、demo
    • 1、容量(不使用迭代器)
    • 2、使用迭代器
    • 3、元素访问 at()、front()、back()、data()

一、array简介

  • array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全,且效率并没有因此变差。

  • 和其它容器不同,array 容器的大小是固定的,无法动态的扩展或收缩,这也就意味着,在使用该容器的过程无法借由增加或移除元素而改变其大小,它只允许访问或者替换存储的元素。

  • 实际项目应用特别少。

在这里插入图片描述

二、头文件

#include <array>

三、模板类

template<class T,std::size_t N
> struct array;

四、成员函数

1、迭代器

成员函数功能
begin()返回指向容器中第一个元素的随机访问迭代器。
end()返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用。
rbegin()返回指向最后一个元素的随机访问迭代器。
rend()返回指向第一个元素之前一个位置的随机访问迭代器。
cbegin()和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素。
cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。

2、元素访问

成员函数功能
operator[]访问指定的元素
at(n)返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常。
front()返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器。
back()返回容器中最后一个元素的直接应用,该函数同样不适用于空的 array 容器。
data()返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能。

3、容量

成员函数功能
size()返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N。
max_size()返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N。
empty()判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快。

4、操作

成员函数功能
fill(val)将 val 这个值赋值给容器中的每个元素。
array1.swap(array2)交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型。

五、demo

1、容量(不使用迭代器)

//array 容器。
#include <iostream>
#include <array>
#include<string>
using namespace std;
int main()
{array<string,5>  words{ "one","two","three","four","five" }; //words被初始化成有5个元素(固定)cout << "遍历(正序):" << endl;for (int i = 0; i < words.size(); ++i)cout << words[i] << " "; //像普通数组一样使用数组容器return 0;
}

输出

遍历(正序):
one two three four five

2、使用迭代器

  • begin()、end()、rbegin()、rend()
    在这里插入图片描述
//array 容器。
#include <iostream>
#include <array>
#include<string>
#include<vector>
using namespace std;
int main()
{array<string,5>  words{ "one","two","three","four","five" }; //words被初始化成有5个元素(固定)cout << "遍历(正序):" << endl;// std::array<string>::iterator iter;//错误,arr容器不可以像其他容器这样定义初始化,我也不清楚。for ( auto iter = words.begin(); iter < words.end(); ++iter)cout << *iter << " "; cout << endl;cout << "遍历(逆序):" << endl;for (auto iter = words.rbegin(); iter < words.rend(); ++iter)cout << *iter << " ";return 0;
}

输出

遍历(正序):
one two three four five
遍历(逆序):
five four three two one

3、元素访问 at()、front()、back()、data()

//array 容器。
#include <iostream>
#include <array>
#include<string>
using namespace std;
int main()
{array<string,5>  words{ "one","two","three","four","five" }; //words被初始化成有5个元素(固定)cout << "words.at(2)=" << words.at(2) << endl; cout << "words.front()=" << words.front() << endl;cout << "words.back()=" << words.back() << endl;string* da=words.data();while (!da->empty()){cout << "words.data()=" << *da << endl;da++;}return 0;
}

输出

words.at(2)=three
words.front()=one
words.back()=five
words.data()=one
words.data()=two
words.data()=three
words.data()=four
words.data()=five
words.data()=

参考:
1、C++ STL 容器库 中文文档
2、STL教程:C++ STL快速入门
3、https://www.apiref.com/cpp-zh/cpp/header.html
4、https://en.cppreference.com/w/cpp/container

http://www.khdw.cn/news/20608.html

相关文章:

  • 高端网站设计报价表哪里有培训网
  • 深圳怎么做网站微信营销推广方案
  • 邳州网站建设广东最新疫情
  • 自家房子做民宿的网站市场营销互联网营销
  • 济源网站制作最好的免费推广平台
  • 曲靖手机网站建设昆明抖音推广
  • 佘山网站建设百度提交网址入口
  • 网站制作怎么创业河南网站排名
  • 做网站开视频网站游戏推广代理加盟
  • 个人网站建设培训竞价排名规则
  • 房山营销型网站建设哈尔滨最新消息
  • 国外做游戏的视频网站有哪些视频seo优化教程
  • 宜昌平台网站建设近10天的时事新闻
  • 做网站那里做可靠晨阳seo顾问
  • 化妆品网页设计论文seo优化seo外包
  • 注册公司费用是多少网站seo内容优化
  • 朔州推广型网站建设网络营销措施有哪些
  • 营销培训课程有哪些旺道seo系统
  • 怎么做免费的网站链接2022年新闻大事
  • wordpress 怎样写函数长沙企业seo服务
  • 怎样做网站呢长春网站制作计划
  • 网站有后台更新不了培训网站推广
  • 香港网站速度慢广州百度关键词搜索
  • 做网站生意不赚钱怎样推广品牌
  • 深圳做网站(官网)seo站长工具是什么
  • 什么网站可以买世界杯seo提升排名
  • 武汉防役新动态宁波seo外包服务
  • 企业为什么做网站优化推广网站流量统计系统
  • 中山模板自助建站百度收录量查询
  • 网站建设个体营业执照百度大数据